1、2.2 MATLAB的基本语法,一、数值、变量和表达式,MATLAB语句形式:变量表达式;,变量的名字必须以字母开头(不能超过19个字符), 之后可以是任意字母、数字或下划线;变量名称区 分字母的大小写;变量中不能包含有标点符号,不 能用中文和全角符号 。,表达式可以是常量、矩阵、数学表达式、函数等。,任何MATLAB的语句的执行结果都可以在屏幕上显示,同时赋值给指定的变量,没有指定变量时,赋值给一个特殊的变量ans,数据的显示格式由format命令控制。,数值显示格式,format只是影响结果的显示,不影响其计算与存储;MATLAB总是以双字长浮点数(双精度)来执行所有的运算。,format
2、 (short):短格式(5位定点数)99.1253 format long:长格式(15位定点数 99.12345678900000 format short e:短格式e方式 9.9123e+001 format long e:长格式e方式 9.912345678900000e+001 format bank:2位十进制 99.12 format hex:十六进制格式,二、常量,常量表达形式:-3.2、-.2、3.2、3.2e-3、3-3i、3-3j,规范的复数表达形式是3-3i,如果用j表示虚部, 将自动转换为i。,注:,3.2e-3是科学记数法;,系统预定义了一些常量: pi:圆周率
3、eps:计算机的最小数 inf:无穷大 realmin:最小正实数 realmax:最大正实数 nan:代表不是数 i、j : 虚数单位,三、矩阵的输入,1、矩阵的直接输入,矩阵生成不但可以使用纯数字(含复数),也可以使用变量(或者说采用一个表达式)。矩阵的元素直接排列在方括号内,行与行之间用分号隔开,每行内的元素使用空格或逗号隔开。大的矩阵可以用分行输入,回车键代表分号。,A = 1,2,3; 4,5,6; 7,8,9,(1)用线性等间距生成向量矩阵(start:step:end) a=1:2:10a=1 3 5 7 9,2、语句生成,(2)a=linspace(n1,n2,n) 在线性空间
4、上,行向量的值从n1到n2,数据个数为n,缺省n为100。 a=linspace(1,10,10)a=1 2 3 4 5 6 7 8 9 10, a=10:-2:1a=10 8 6 4 2,(3)a=logspace(n1,n2,n) 在对数空间上,行向量的值从10n1到10n2,数据个数为n,缺省n为50。 a=logspace(1,3,3)a=10 100 1000,(4)一些常用的特殊矩阵 单位矩阵:eye(m,n); eye(m) 零矩阵:zeros(m,n); zeros(m) 一矩阵:ones(m,n); ones(m) 对角矩阵:对角元素向量 V=a1,a2,an A=diag(
5、V) 均匀分布随机矩阵:rand(m,n)产生一个mn的均匀分别的随机矩阵 正态分布随机阵:randn(m,n),1、转置:对于实矩阵用()或(.)求转置结果是一样的;然而对于含复数的矩阵,则()将同时对复数进行共轭处理,而 (.)则只是将其排列形式进行转置。, a=1 2 3;4 5 6 a =1 42 53 6, b=1+2i 2-7i b =1.0000 - 2.0000i2.0000 + 7.0000i b=1+2i 2-7i. b =1.0000 + 2.0000i2.0000 - 7.0000i,四、矩阵的操作,A(m,n):提取第m行,第n列元素 A(:,n):提取第n列元素 A
6、(m,:):提取第m行元素 A(m1:m2,n1:n2):提取第m1行到第m2行和第n1列到第n2列的所有元素(提取子块)。,2、提取矩阵中的元素,3、判断矩阵的大小,a=1 2 3;3 4 5; m,n=size(a) m =2 n =3,length(a) ans =3 max(size(a) ans =3,m,n=size(A):返回矩阵的行列数m与n。 length(A)=max(size(A):返回行数或列数的最大值。,+ - * / .* . ./ .,4、四则运算与幂运算,只有维数相同的矩阵才能进行加减运算。 注意只有当两个矩阵中前一个矩阵的列数和后一个矩阵的行数相同时,才可以进
7、行乘法运算。 ab运算等效于求a*x=b的解;而a/b等效于求x*b=a的解。 只有方阵才可以求幂。 点运算是两个维数相同矩阵对应元素之间的运算。,算术运算符,(1)矩阵加减法“”:AB功能:两矩阵对应元素相加减。因此,A和B两矩阵必须有相同的大小,或其中之一为标量,标量可以与任意大小的矩阵相加。 (2)矩阵相乘“*”:A*B功能:C =A*B为两矩阵线性代数的乘积,即,(3) 矩阵元素相乘“.*”:A.*B 功能:矩阵A和B的对应元素相乘;因此,A和B必须大小相同,或其中之一为标量。 (4)矩阵右除“B/A”与左除“AB” 如果A为一非奇异矩阵,则B/A与AB可通过A的逆矩阵与B矩阵得到:B
8、/A=B*inv(A); AB=inv(A)*B。,(5)矩阵元素右除“A./B”与左除“A.B”矩阵元素右除“A./B”表示矩阵元素A(i,j)/B(i,j);矩阵元素左除“A.B” 表示矩阵B(i,j)/A(i,j),因此,A和B必须大小相同,或者其中之一为标量。 (6)矩阵幂“”:Xp如果p为标量,表示X的p次幂;如果X为标量,而p为矩阵,Xp用特征值和特征特征 向量表示X的矩阵p次幂。注意X和p不能同时为矩阵,但必须是方阵。 (7)矩阵元素幂“.”:A.BA.B表示矩阵元素A(i,j)的B(i,j)次幂,A与B必须大小相同,或者其中之一为标量。,(8) 矩阵转置“ ” A表示矩阵A的线
9、性代数转置。对于复矩阵,表示复共轭转置。 (9) 非共轭转置“ . ” A.表示非共轭转置;对于复矩阵,不包括共轭。 (10)冒号操作符“:”冒号是一个非常有用的操作符;可以产生向量、数组下标以及for循环。,关系比较结果只有两种可能,即1或0。1表示关系式这“真”,即关系式正确;0表示该关系为“假”,即它不成立。,逻辑操作符,通常逻辑变量只能取0(假)和1(真)两个值。逻辑量的基本运算除“与(&)”、“或(|)”和“非()”外,有时也包括“异或(xor)”,不过“异或”可以用3种基本运算组合而成。两个逻辑量经过这4种逻辑运算后的输出仍然是逻辑量。,关系操作符,关系运算是指两个元素之间数值的比
10、较。MATLAB所提供的关系操作符如表所示。,关系与逻辑函数,其他关系与逻辑函数,测试函数,复数运算,1MATLAB中所有的运算符和函数都对复数有效。,2复数的共轭可利用函数“conj”来完成,5、变量检查,在程序调试或变量的赋值过程,往往需要检查工作空间中的变量、变量的阶数以及变量赋值内容。在检查变量及其阶数等内容时,既可用工作空间窗口,也可在命令窗口使用who或whos命令来完成检查。当查看某变量的赋值情况,可在命令窗口直接键入该变量名回车即可。,6、方阵的相关计算,求逆:inv(A) 求行列式:det(A) 求特征值和特征向量:V, D=eig(A),五、关系运算和逻辑运算,表1 关系操作符,表2 逻辑运算符,表3 逻辑关系函数,例. 关系运算:A=1:9, B=10-A, r0=(A4), r1=(A=B) A = 1 2 3 4 5 6 7 8 9 B = 9 8 7 6 5 4 3 2 1 r0 = 1 1 1 0 0 0 0 0 0 r1 = 0 0 0 0 1 0 0 0 0,例. 逻辑与关系操作: A=1:9,B=(A5) %判断A中,哪些元素不大于5 C=(A3)&(A7) %判断A中,哪些元素大于3小于7 A = 1 2 3 4 5 6 7 8 9 B = 1 1 1 1 1 0 0 0 0 C = 0 0 0 1 1 1 0 0 0,