1.6 MATLAB运算符
MATLAB语言包括三种常见运算符:算术运算符、关系运算符和逻辑运算符。
1.6.1 算术运算符
MATLAB语言有许多算术运算符,如表1-7所示。
表1-7 算术运算符
说明:
(1)加、减、乘和乘方运算规则与传统的数学定义一样,用法也相同。
(2)点运算(点乘、点乘方、点左除和点右除)是指对应元素点对点运算,要求参与运算矩阵的维度要一样。需要指出点左除与点右除不一样,A./B是指A的对应元素除以B的对应元素,A.\B是指B的对应元素除以A的对应元素。
(3)MATLAB除法相对复杂些,对于单个数值运算,右除和传统除法一样,即a/b=a÷b;而左除与传统除法相反,即a\b=b÷a。对于矩阵运算,左除A\B相当于矩阵方程组AX=B的解,即X=A\B=inv(A)∗B;右除B/A相当于矩阵方程组XA=B的解,即X=B/A=B∗inv(A)。
【例1-2】 矩阵A=[1 2;3 4],B=[1 1;0 1],求:A\B,inv(A)∗B,B/A,B∗inv(A)。
显然,A\B=inv(A)∗B;B/A=B∗inv(A)。
MATLAB提供了许多常用数学函数,若函数自变量是一个矩阵,运算规则是将函数逐项作用于矩阵的元素上,得到的结果是一个与自变量同维数的矩阵。表1-8列出了常用的数学函数。
说明:
(1)abs函数可以求实数的绝对值,复数的模和字符串的ASCII值,例如,abs(﹣2.3)=2.3;abs(3+4i)=5;abs('a')=97。
(2)MATLAB语言有4个取整的函数:round、fix、floor和ceil,它们之间是有区别的。例如,round(1.49)=1,fix(1.49)=1,floor(1.49)=1,ceil(1.49)=2;round(﹣1.51)=﹣2,fix(﹣1.51)=﹣1,floor(﹣1.51)=﹣2,ceil(﹣1.51)=﹣1。
(3)MATLAB语言中以10为底的对数函数是log10(x),而不是lg(x);自然指数函数是exp(x),而不是e(x)。
(4)符号函数sign(x)的值有三种:当x=0时,sign(x)=0;当x>0时,sign(x)=1;当x<0时,sign(x)=﹣1。
表1-8 常用的数学函数
(5)MATLAB语言的三角函数都是对弧度进行操作,使用三角函数时,需要将度数变换为弧度,变换公式为弧度=2∗pi∗(度/360)。例如,数学上的sin(60°),MATLAB语言应该写成sin(2∗pi∗60/360)。
1.6.2 关系运算符
MATLAB语言有大于、大于或等于、小于、小于或等于、等于和不等于6种常见的关系运算符,如表1-9所示。
表1-9 关系运算符
关系运算符主要用于数与数、数与矩阵元素、矩阵与矩阵之间的元素进行比较,返回两者之间的关系的矩阵(由数0和1组成),0和1分别表示关系不满足和满足。矩阵与矩阵之间进行比较时,两个矩阵的维度要一样。
【例1-3】 已知a=1,b=2,C=[1,2;3 4],D=[4 3;2 1],求关系运算a==b,a~=b,a==C和C<D。
1.6.3 逻辑运算符
MATLAB语言提供4种常见的逻辑运算符:&(与)、|(或)、~(非)和xor(异或)。
运算规则:
(1)在逻辑运算中,所有非零元素均被认为真,用1表示;零元素为假,用0表示。
(2)设参与逻辑运算的两个标量为a和b,那么逻辑运算规则如表1-10所示。
表1-10 逻辑运算规则
(3)如果两个同维矩阵参与逻辑运算,矩阵对应元素按标量规则进行逻辑运算,得到同维的由1或者0构成的矩阵。
(4)如果一个标量和一个矩阵参与逻辑运算,标量和矩阵的每个元素按标量规则进行逻辑运算,得到同维的由1或者0构成的矩阵。
例如:
1.6.4 优先级
在MATLAB算术、关系和逻辑三种运算符中,算术运算符优先级最高,关系运算符次之,逻辑运算符优先级最低。即程序先执行算术运算,然后执行关系运算,最后执行逻辑运算。在逻辑“与”“或”“非”三种运算符中,“非”的优先级最高,“与”和“或”的优先级相同,即从左往右执行。实际应用中,可以通过括号来调整运算的顺序。
例如:
其中,MATLAB先执行算术运算1+2=3,然后执行关系运算1>2为0,以及2<3为1,最后执行逻辑运算0|1=1。