-1-计算机化工应用:Matlab语言及其在工程领域中的应用-2-参考教材:《实用化工计算机模拟-Matlab在化学工程中的应用》黄华江编著化学工业出版社-3-第2章MATLAB编程基础Matlab=matrixlaboratory.基本数据单位:array开发目的:最早作为矩阵实验室,用来提供与LINPACK和EISPACK矩阵软件接口的。逐渐发展成为具有通用科技计算、图形交互系统和程序设计语言的、国际公认的、最优秀的科技应用软件之一。-4-Matlab语言特点1、高质量、高可靠性的数值计算能力2、基于向量、矩阵和数组的高级程序设计语言3、高级图形和可视化数据处理能力4、广泛解决各学科专业领域内复杂问题的能力5、拥有功能强大的工具箱(toolboxes)teyt3sin3衰减振荡曲线-5-6、语言简单、编程易、效率高允许用户以数学形式的语言编写程序,帮助系统功能强大。Matlab程序文件是一个纯文本文件,程序易调试。7、扩充能力强,可开发性强可方便地与FORTRAN、C、C++等语言进行连接,和Maple有很好的接口-6-基本内容DevelopmentSystemBasicOperationsDataTypesDataInputandOutputNumericalCalculationSymbolicMath-7-ScriptsandFunctionsFlowControlGraphicVisualizationDebugMethodProgramExamples-8-1-DevelopmentSystem-9-①CommandWindow运用命令窗口去调入变量,运行函数和M-文件。②CommandHistory在控制窗的输入内容都被记录在命令历史窗口中。在命令历史中,可以看到以前用过的函数,并且可以复制和执行选定行。③Start提供了进入工具箱、演示和文件等的简单入口。DesktopTools-10-④CurrentDirectoryMATLAB文档的所有操作是以当前目录或者搜索路径作为参考点的。所需要运行的任何文档都必须在当前目录下或者搜索目录下完成。⑤WorkspaceMATLAB工作空间(或工作区)包含内建MATLAB处理任务时以及储存在记忆体中的变量排列。你可以通过使用函数、运行M-文件、装载已存文件等方式增加变量到工作区。DesktopTools-11-⑥ArrayEditor在工作空间浏览器里双击一个变量后,会弹出一个数组编辑器。可以用这个数组编辑器来查看或者编辑在工作空间里的一维或者二维的数值矩阵,字符串和字符串的单元数组的直观表示。⑦Editor/Debug编辑器/调试器是用来生成和调试M-文件的,这些M-文件是为运行MATLAB函数所写的程序。编辑器/调试器为基本文字编辑和M文件的调试提供图形用户界面。DesktopTools-12-DevelopmentSystem①DesktopToolsandDevelopmentEnvironmentconsistsoffivemainparts:使用MATLAB的函数和文件的工具和设备。这些工具大部分是图形用户界面。它包括MATLAB桌面和命令窗口,命令历史,和用于查看帮助的浏览器,工作空间,文件和查找路径。②TheMATLABMathematicalFunctionLibrary汇集了大量计算的算法,范围从初等函数如:求和,正弦,余弦和复数的算术运算,到复杂的高等函数如:矩阵求逆,矩阵特征值,贝塞尔(Bessel)函数和快速傅立叶变换等。-13-③TheMATLABLanguageconsistsoffivemainparts:一种高级矩阵/数组语言,含有控制流语句,函数,数据结构,输入/输出,和面向对象编程特征。它允许“小型编程”以迅速创立快速抛弃型程序,以及“大型编程”以创立完整的大型复杂应用程序。④GraphicsMATLAB制图系统。它包括高级别的二维、三维数据可视化,图像处理,动画,以及表现图形的命令。它还包括低级别的命令,不但能在MATLAB的应用中建立完整的图形用户界面,而且还能完全定制图形的外观。-14-DevelopmentSystem⑤TheMATLABExternalInterfaces/APIconsistsoffivemainparts:编写与MATLAB相合的C或Fortran程序的程序库。它包括从MATLAB中调用程序(动态链接),调用MATLAB为计算引擎,和读写MAT-文件的设备。-15-MATLAB通用命令-16-Matlab常用的窗口帮助命令-17-help命令直接输入help,MATLAB将列出所有的帮助主题,每个帮助主题对应于MATLAB搜索路径中的一个目录;help后加帮助主题,可获得指定帮助主题的帮助信息;help后加函数名;help后加命令名,将得到指定命令的用法;¤联机帮助:点击工具条上的“?”按钮或者Help菜单中的Help选项¤PDF帮助文档¤网站资源:上机练习(1)以两种方式打开MATLAB工作窗口,进入MATLAB7.1的工作环境,并尝试用不同的方式退出。(2)尝试、熟悉MATLAB7.1的各栏菜单以及各个工具栏的功能。(3)重新启动MATLAB7.1,进入MATLAB工作窗口,用who命令查看当前工作空间内有无变量及其值。(4)绘制函数y=cos(5x+2)/sin(3x+1)的图像,并求解当x=2时的函数值。-21-(5)此时再次用who命令查看工作空间内的变量名及其值,与(3)比较,同时用whos命令查看变量,比较与who命令的不同。(6)熟练掌握MATLAB的通用命令。(7)练习并熟练掌握MATLAB的帮助命令,学会利用MATLAB的帮助信息。(8)用lookfor命令查找函数cos的信息,并与help命令查找的结果相比较,注意采用两种命令之间的差别。-22-2-BasicOperations①操作符BasicOperations:算术操作符:+-*/∧(乘方)\(左除)’(复共轭转置).(元素对元素的运算)关系操作符:==(等于)~=(不等于)逻辑操作符:&(逻辑与)∣(逻辑或)~(逻辑非)and(A,B)or(A,B)not(A)通用计算函数:sum,max,min,mean,sqrt,exp,log-23-Codingbasics:空格(为机器辨认)用作输入量与输入量之间的分隔符;数组元素分隔符。,用作要显示计算结果的指令与其后指令之间的分隔;用作输入量与输入量之间的分隔符;用作数组元素分隔符号。.数值表示中,用作小数点;用于运算符号前,构成“数组”运算符2-BasicOperations-24-;用于指令的“结尾”,抑制计算结果的显示;用作不显示计算结果指令与其后指令的分隔;用作数组的行间分隔符。:用以生成一维数值数组;用做单下标援时,表示全部元素构成的长列;用做多下标援引时,表示该维上的全部元素。Codingbasics:-25-%由它“启首”的所有物理行部分被看作非执行注释。‘'字符串记述符。()改变运算次序;在数组援引时用;函数指令输入变量列表时用。[]输入数组时用;函数指令输出变量列表时用。{}胞元数组记述符。Codingbasics:-26-_用作一个变量、函数或文件名中的连字符;图形中被控下脚标前导符。...由三个以上连续黑点构成。它把其下的物理行看作该行的“逻辑”继续,以构成一个“较长”的完整指令。@放在函数名前,形成函数句柄;匿名函数前导符;放在目录名前,形成“用户对象”类目录。Codingbasics:-27-Variables:MATLAB中的变量不需要对变量类型和维数的声明。当遇到新的变量名时,会自动生成这个变量并赋予适当的存储单元。如果该变量已经存在,MATLAB将改变这个变量的值,必要时会赋予新的存储单元。全局变量(globalvariables):对整个程序的所有过程或函数都有效globalx局部变量(localvariables):只在该函数内有效-28-变量、常数和函数的命名必须遵循以下规则:以字母打头,之后是任意大小写字母、数字或下划线;Matlab仅使用前31个字符作为变量名,且大小写敏感;不和关键字同名,包括预定义语句(如for和if)、内部函数名(如exp和sin)、操作符(如or)等;内部函数名必须用小写。-29-函数内部定义的变量为局部变量,不加载到工作空间中。需要使用全局变量,则使用global定义。而且在任何使用该全局变量的函数中都应加以定义,在命令窗口中也不例外。-31-预定义变量ans:计算结果的默认变量名NaN或nan:非数(NotaNumber),如0/0,∞/∞eps:机器零阈值(2-52)Inf或inf:无穷大,如1/0nargin:所用函数的输入变量数目nargout:所用函数的输出变量数目i和j:虚数的表示符号pi:圆周率realmax:最大正实数,21024realmin:最小正实数,2-1024-32-②标量、向量与矩阵的关系3-DataTypesArray、VectorandMatrix:①Array(数组)数组是Matlab语言唯一能够处理的对象类型,所有类型变量,包括标量(scalar)、向量(vector)、矩阵(matrix)、字符串(string)、胞元数组(cellarray)、结构体(structure)和对象(object)等都是以Matlab数组的列方式存储。标量:仅有一个元素的数组,1×1矩阵向量:由n个标量组成的一维数组,1×n或n×1矩阵矩阵:通常是指二维数组多维数组:维数大于2的数组由此可见:标量、向量都是矩阵的一种特殊情形,三者均是数组-34-format命令format%改变输出格式为默认格式,对浮点变量,默认为short(5位数字,定点值)formattype%改变输出格式为指定格式-35-TypeResultExampleshortScaledfixedpointformat,with5digits3.1416longScaledfixedpointformat,with15digitsfordouble;7digitsforsingle.3.14159265358979shorteFloatingpointformat,with5digits.3.1416e+000longeFloatingpointformat,with15digitsfordouble;7digitsforsingle.3.141592653589793e+000-36-整型:包括8位、16位和32位的有符号(int8、int16、int32)和无符号(uint8、uint16、uint32)。相应的类型转换函数为int8()、int16()、int32()、uint8()、uint16()和uint32()①数值型s=int8([56.23100.368])s=56100b=2*sb=112127c=uint16([-56.23100.368])c=0100whoscNameSizeBytesClassc1x24uint16arrayGrandtotalis2elementsusing4bytesDataTypes:各种类型可以是一维、二维和多维-37-a=‘welcome’%用单引号括起来表示字符型数组whosaNameSizeBytesClassa1×714chararrayGrandtotalis7elementsusing14bytescleara;clca=char([‘Youarewelcome!’;‘Itisanexample’])%用char()创建字符数组(字符串)%创建二维字符数