2.3 运算符
MATLAB中的运算符分为算术运算符、关系运算符和逻辑运算符。这3种运算符可以分别使用,也可以在同一运算式中出现。当在同一运算式中同时出现两种或两种以上运算符时,运算的优先级排列如下:算术运算符优先级最高,其次是关系运算符,最低级别是逻辑运算符。
2.3.1 算术运算符
MATLAB中的算术运算符有加、减、乘、除、点乘、点除等,其运算法则如表2-19所示。
表2-19 MATLAB中的算术运算符及其运算法则
例2-51:数值与矩阵的算术运算示例。
在命令行窗口中输入:
输出结果:
MATLAB平台上还提供了大量的运算函数,其中常用的运算函数如表2-20所示。
表2-20 MATLAB中常用的运算函数
续表
2.3.2 关系运算符
MATLAB中的关系运算符有6个,具体如表2-21所示。
表2-21 MATLAB中的关系运算符
○注意
“=”和“==”的区别:“==”的运算法则是比较两个变量,当它们相等时返回1,当它们不相等时返回0;而“=”则被用来将运算结果赋给一个变量。
关系运算符可以用来对两个数值、两个数组、两个矩阵或两个字符串等数据类型进行比较,同样也可以进行不同数据类型的两个数据之间的比较。比较的方式根据所比较的两个数据类型的不同而不同。例如在对矩阵和一个标量进行比较时,需将矩阵中的每个元素与标量进行比较。
关系运算符通过比较对应的元素,产生一个仅包含1和0的数值或矩阵。其元素代表的意义如下:
● 返回值为1,比较结果是真。
● 返回值为0,比较结果是假。
例2-52:关系运算符的运用。
在命令行窗口中输入:
输出结果:
在命令行窗口中输入:
输出结果:
在命令行窗口中输入:
输出结果:
例2-53:关系运算符的运算。
在命令行窗口中输入:
输出结果:
○提示
上例中利用特殊的MATLAB数eps代替一个数组中的零元素,eps近似为2.2e-16。这种特殊的表达式在避免0作为分母时是很有用的。
2.3.3 逻辑运算符
逻辑运算符提供了一种组合或否定关系表达式。MATLAB中的逻辑运算符如表2-22所示。
表2-22 MATLAB中的逻辑运算符
例2-54:逻辑运算符的运用。
在命令行窗口中输入:
输出结果:
在命令行窗口中输入:
输出结果:
与关系运算符一样,逻辑运算符也可以进行矩阵与数值之间的比较,比较的方式为将矩阵的每一个元素都与数值进行比较,比较结果为一个相同维数的矩阵,新生成矩阵中的每一个元素都代表着原来矩阵中相同位置上的元素与该数值的逻辑运算结果。
在使用逻辑运算符比较两个相同维数的矩阵时,是按元素来进行比较的,其比较结果是一个包含1和0的矩阵。元素0表示逻辑为假,元素1表示逻辑为真。
A&B返回一个与A和B相同维数的矩阵。在这个矩阵中,当A和B对应元素都为非零时,对应项为1;当有一个为零时,对应项为0。
A|B返回一个与A和B相同维数的矩阵。在这个矩阵中,A和B对应元素只要有一个为非零,则对应项为1;当两个矩阵均为零时,对应项为0。
~A返回一个与A相同维数的矩阵。在这个矩阵中,当A中对应项是零时,对应项为1;当A中对应项是非零时,对应项为0。
除了上面的逻辑运算符,MATLAB中还提供了各种逻辑函数,基本的逻辑函数如表2-23所示。
表2-23 MATLAB中基本的逻辑函数
2.3.4 运算优先级
在一个表达式中,算术运算符优先级最高,其次是关系运算符,最后是逻辑运算符。需要时,可以通过加括号来改变运算顺序。MATLAB中具体的运算优先级排列如表2-24所示。
表2-24 MATLAB中具体的运算优先级排列
○提示
在表达式的书写中,建议采用括号分级的方式明确运算的先后顺序,避免优先级混乱而产生运算错误。