第2章MATLAB的基本语法第2章MATLAB的基本语法第2章MATLAB的基本语法2.1变量及其赋值2.2运算符与数学表达式2.3控制流2.4数据的输入输出及文件的读写2.5基本数学函数2.6基本绘图方法2.7M文件及程序调试第2章MATLAB的基本语法第2章MATLAB的基本语法2.1变量及其赋值2.1.1标识符与数pipipxx标识符是标志变量名、常量名、函数名和文件名的字符串的总称。在MTLAB中,变量和常量的标识符最长允许19个字符。字符包括全部的英文字母(大小写52个)、阿拉伯数字和下划线等符号,标识符中第一个字符必须是英文字母。2.1.2矩阵及其元素的赋值赋值就是把数赋予代表常量或变量的标识符。在MATLAB中,变量都代表矩阵。列矢量可被当作只有一列的矩阵;行矢量也可被当作只有一个行的矩阵;标量应看作11阶的矩阵。赋值语句的一般形式为:变量=表达式(或数)1.赋值要求在输入矩阵时,应遵循以下规则:·整个矩阵的值应放在方括号中;·同一行中各元素之间以逗号“,”或空格分开;·不同行的元素以分号“;”隔开。2.变量的元素的标注第2章MATLAB的基本语法第2章MATLAB的基本语法在MATLAB中,变量的元素(即矩阵元)用圆括号“()”中的数字(也称为下标)来注明,一维矩阵(也称数组)中的元素用一个下标表示,二维矩阵由两个下标数构成,以逗号分开,对三维矩阵则由三个下标数构成。3.赋值技巧(1)利用冒号“:”给全行的元素赋值(2)利用行、列标注构成新的矩阵4.特殊矩阵和数组(1)单位矩阵函数eye()函数功能:产生对主角线元素为1,其它元素为0的单位矩阵。eye()的调用格式如下:A=eye(n)返回一个nn阶单位矩阵;A=eye(m,n)返回一个mn阶单位矩阵,或用A=eye([m,n]);(2)zeros函数、ones函数、rand以及randn函数A=zeros(n)返回一个nn阶零矩阵;A=zeros(m,n)返回一个mn阶零矩阵;第2章MATLAB的基本语法第2章MATLAB的基本语法(3)linspace函数和logspace函数linspace函数的调用格式如下:y=linspace(a,b)产生一个行矢量y,该矢量把a和b间的数等分100份而得到。y=linspace(a,b,n)产生一个行矢量y,该矢量把a和b间的数等分n份而得到。5.MATLAB内部特殊变量和常数⑴变量ans:临时变量,通常指示当前的答案。⑵常数eps:表示浮点相对精度;其值是从1.0到下一个最大浮点数之间的差值。变量值作为一些MATLAB函数计算的相对浮点精度,按IEEE标准,esp=2-52近似为2.2204e-016。⑶常数realmax:表示最大正浮点数;任何大于该值的运算都溢出。在具有IEEE标准浮点格式的机器上,realmax略小于21024,近似为1.7977e+308。⑷常数realmin:表示最小正浮点数;任何小于该值的运算都溢出。在具有IEEE标准浮点格式的机器上,realmin略小于2-1024,近似为2.2251e-308。⑸常数pi:表示圆周率π=3.1415926535897.....。表达式4*atan(1)和imag(log(-1))产生相同的值π。第2章MATLAB的基本语法第2章MATLAB的基本语法⑹常数Inf:代表正无穷大,一般被0除或溢出则产生无穷大结果。如2/0,2^10000均产生结果:Inf;而log(0)产生结果:-Inf。⑺虚数单位i,j:表示复数虚部单位,相当于。⑻NaN:表示非数值。如当Inf-Inf,Inf/Inf,0*Inf,0/0均产生该结果。16.复数的赋值方式MATLAB的每一个元素都可以是复数,实数是复数的特例。复数的虚数部分用i或j表示。对复数矩阵有两种赋值方法:(1)可将矩阵元逐个赋予复数(2)将矩阵的实部和虚部分别赋值:7.变量检查在程序调试或变量的赋值过程,往往需要检查工作空间中的变量、变量的阶数以及变量赋值内容。在检查变量及其阶数等内容时,既可用工作空间窗口,也可在命令窗口使用who或whos命令来完成检查。当查看某变量的赋值情况,可在命令窗口直接键入该变量名回车即可。第2章MATLAB的基本语法第2章MATLAB的基本语法2.2运算符与复数运算算术运算符:进行数值计算。关系运算符:比较两个操作数的大小。逻辑运算符:进行逻辑运算。2.2.1算术运算符(1)矩阵加减法“±”:A±B功能:两矩阵对应元素相加减。因此,A和B两矩阵必须有相同的大小,或其中之一为标量,标量可以与任意大小的矩阵相加。(2)矩阵相乘“*”:A*B功能:C=A*B为两矩阵线性代数的乘积,即nkjkBkiAjiC1),(),(),((3)矩阵元素相乘“.*”:A.*B功能:矩阵A和B的对应元素相乘;因此,A和B必须大小相同,或其中之一为标量。(4)矩阵右除“B/A”与左除“A\B”如果A为一非奇异矩阵,则B/A与A\B可通过A的逆矩阵与B矩阵得到:B/A=B*inv(A);A\B=inv(A)*B。第2章MATLAB的基本语法第2章MATLAB的基本语法(5)矩阵元素右除“A./B”与左除“A.\B”矩阵元素右除“A./B”表示矩阵元素A(i,j)/B(i,j);矩阵元素左除“A./B”表示矩阵B(i,j)/A(i,j),因此,A和B必须大小相同,或者其中之一为标量。(6)矩阵幂“^”:X^p如果p为标量,表示X的p次幂;如果X为标量,而p为矩阵,X^p用特征值和特征特征向量表示X的矩阵p次幂。注意X和p不能同时为矩阵,但必须是方阵。(7)矩阵元素幂“.^”:A.^BA.^B表示矩阵元素A(i,j)的B(i,j)次幂,A与B必须大小相同,或者其中之一为标量。(8)矩阵转置“’”A’表示矩阵A的线性代数转置。对于复矩阵,表示复共轭转置。(9)非共轭转置“.’”A.’表示非共轭转置;对于复矩阵,不包括共轭。(10)冒号操作符“:”冒号是一个非常有用的操作符;可以产生向量、数组下标以及for循环。第2章MATLAB的基本语法第2章MATLAB的基本语法关系比较结果只有两种可能,即1或0。1表示关系式这“真”,即关系式正确;0表示该关系为“假”,即它不成立。2.2.3逻辑操作符通常逻辑变量只能取0(假)和1(真)两个值。逻辑量的基本运算除“与(&)”、“或(|)”和“非(~)”外,有时也包括“异或(xor)”,不过“异或”可以用3种基本运算组合而成。两个逻辑量经过这4种逻辑运算后的输出仍然是逻辑量。2.2.2关系操作符关系运算是指两个元素之间数值的比较。MATLAB所提供的关系操作符如表所示。第2章MATLAB的基本语法第2章MATLAB的基本语法2.2.4关系与逻辑函数其他关系与逻辑函数测试函数第2章MATLAB的基本语法第2章MATLAB的基本语法2.2.5复数运算1.MATLAB中所有的运算符和函数都对复数有效。2.复数的共轭可利用函数“conj”来完成2.3控制流2.3.1If语句if语句称为条件执行语句。其关键字包括if、else、elseif和end。格式之一:if表达式语句组Aend其工作流程如图所示。注意:语句中的end是决不可少的,没有它,在逻辑表达式为0时,就找不到继续执行程序的入口。第2章MATLAB的基本语法第2章MATLAB的基本语法格式之二:if表达式语句组Aelse语句组Bend其工作流程如图所示。第2章MATLAB的基本语法第2章MATLAB的基本语法格式之三:if表达式1语句组Aelseif表达式2语句组Belse语句组Cend工作流程原理如图2.3所示。第2章MATLAB的基本语法第2章MATLAB的基本语法switch选择表达式case情况表达式1语句组1case情况表达式2语句组2………otherwise语句组nend2.3.2Switch语句switch语句,也是条件选择结构。其关键字包括switch、case、otherwise和end。它主要用于有选择性的程序设计,实现程序的多分支选择。其调格式为:第2章MATLAB的基本语法第2章MATLAB的基本语法2.3.3While语句while语句为条件循环语句,循环执行一组语句,执行次数不确定,而是决定于一些逻辑条件。其关键字包括while、end、break等。基本调用格式:while表达式语句Aend判断表达式是否满足?满足(Y)不满足(N)条件执行结束语句组Awhileend第2章MATLAB的基本语法第2章MATLAB的基本语法2.3.4for语句for语句也是循环语句,但与while语句不同的是,它循环执行一组语句的执行次数是确定。其关键字包括for、end、break等。调用的基本格式如下:forindex=初值:增量:终值语句组Aend功能:把语句组A(亦称为循环体)反复执行N次。循环次数N为:N=1+(终值-初值)/增量在每次执行时程序中的index的值按“增量”增加。注意:(1)For循环不能用For循环内重新赋值循环变量n来终止。(2)在For循环内接受任何有效的MATLAB数组。(3)for循环可按需要嵌套。与其它的编程语言类似,for语句可以嵌套使用。(4)当有一个等效的数组方法来解给定的问题时,应避免用For循环。(5)为了提高处理的速度,在For循环(While循环)被执行之前,应预先分配数组。第2章MATLAB的基本语法第2章MATLAB的基本语法2.4数据的输入输出及文件的读写2.4.1交互输入与输出命令和函数1.键盘输入命令input格式一:u=input(‘提示内容’)格式二:u=input(‘提示内容’,‘s’)在屏幕上显示提示内容,等待从键盘输入,将输入的符号以字符串赋给文本(字符串)变量u。2.菜单输入命令menu功能:产生一个供用户输入的选择菜单。格式:k=menu(‘title’,‘选项1’,‘选项2’,,‘选项n’)显示以字符串变量‘title’为标题的菜单,选择为字符变量:‘选项1’,‘选项2’,,‘选项n’,并将所输入的值赋给变量k。3.暂停执行命令pausepause常用在M文件中,用于停止执行,直接按任意键继续执行;pause(n)暂停执行n秒后继续执行;pauseon允许一系列pause命令暂停程序执行;pauseoff保证任何pause命令和pausea(n)语句不能暂停程序执行。第2章MATLAB的基本语法第2章MATLAB的基本语法4.显示命令disp功能:显示指定的变量或变量的内容。调用格式:disp(变量名)5.按格式要求输出变量命令sprintf功能:按格式要求输出变量调用格式:sprintf(显示格式,变量)。2.4.2文件输入输出命令与函数1.save功能:用以将工作空间中的变量保存到磁盘上。格式一:save将工作空间中的所有变量保存在一个名为:“matlab.mat”的二进制格式文件中,该文件可通过load命令来重新装入工作空间。格式二:save文件名变量名将工作空间中指定的“变量名”保存在指定“文件名.mat”的二进制格式文件中。格式三:save文件名选项使用“选项”指定ASCII文件格式,将工作实间中所有变量保存到“文件名”所指定的文件中。第2章MATLAB的基本语法第2章MATLAB的基本语法2.load:功能:从磁盘文件中重新调入变量内容到工作空间。格式一:load将保存在“matlab.mat”文件中的所有变量调入到工作空间。格式二:load文件名从“文件名.mat”中调入变量,可给出全部路径。3.fopen功能:打开文件或获得打开文件信息。格式一:f_id=fopen(文件名,’允许模式’)以’允许模式’指定的模式打开“文件名”所指定的文件,返回文件标识f_id;’允许模式’可以是下列几个字符串之一:‘r’:打开文件进行读(缺省型式);‘w’:删除己存在文件中的内容或生成一个新文件,打开进行写操作;‘a’:打开一个己存在的文件或生成并打开一个新文件,进行写操