Matlab R2016a从入门到精通 (CAX工程应用丛书)
上QQ阅读APP看书,第一时间看更新

2.2 运算符与运算

MATLAB中的运算符分为算术运算符、关系运算符和逻辑运算符三种。这三种运算符可以分别使用,也可以同时出现。在同一运算式中同时出现两种或两种以上运算符时,运算按优先级顺序进行:算术运算符优先级最高,其次是关系运算符,最低级别是逻辑运算符。

2.2.1 算术运算符

MATLAB中的算术运算符有四则运算符和带点四则运算符等,相关运算法则如表2.10所示。

表2.10 MATLAB中的算术运算符

例2-26,数值与矩阵的算术运算示例。

在命令行窗口输入:

    A =2* eye(2), B = ones(2), C = A * B, D = A .* B, E=A.^2

输出结果如下:

    A =   2      0
        0      2
    B =   1      1
        1      1
    C =  2      2
        2      2
    D =  2      0
        0      2
    E =  4      0
        0      4

2.2.2 关系运算符

MATLAB带有6个关系运算符,其运算法则如表2.11所示。

表2.11 MATLAB中的关系运算符

‘==’和‘=’的区别在于:‘==’的运算法则是比较两个变量,当它们相等时返回1,当它们不相等时返回0;而‘=’则是被用来赋值的。

表中的运算符可以用来对数值、数组、矩阵或是字符串等数据类型进行比较,也可以进行不同类型两个数据之间的比较。

比较的方式根据所比较的两个数据类型的不同而不同,例如对矩阵与一个标量进行比较时,即将矩阵中的每个元素与标量进行比较;而将结构相同的矩阵进行比较时,则将矩阵中的元素相互比较:关系运算符比较对应的元素,产生一个仅包含1和0的数值或矩阵。其元素代表的意义如下:

● 返回值为1,比较结果是真;

● 返回值为0,比较结果是假。

例2-27,关系运算符运算。

在命令行窗口输入:

    A=1:5, B=6-A
    TrueorFalse1 = ( A>4 )
    TrueorFalse2 = ( A==B )
    TrueorFalse3 = ( A>B )

输出结果如下:

    A =  1      2      3      4      5
    B =  5      4      3      2      1
    TrueorFalse1 =  0      0      0      0      1
    TrueorFalse2 =  0      0      1      0      0
    TrueorFalse3 =  0      0      0      1      1

2.2.3 逻辑运算符

逻辑运算符提供组合或否定关系表达方法。MATLAB逻辑运算符如表2.12所示。

表2.12 MATLAB中的逻辑运算符

例2-28,逻辑运算符的运用。

在命令行窗口输入:

    A=1:5, B=6-A
    TrueorFalse1 =~ ( A>4 )
    TrueorFalse2 =(A>1)&(A<5)
    TrueorFalse3 =(A>3)|(B>3)

输出结果如下:

    A =  1      2      3      4      5
    B =  5      4      3      2      1
    TrueorFalse1 =  1      1      1      1      0
    TrueorFalse2 =  0      1      1      1      0
    TrueorFalse3 =  1      1      0      1      1

逻辑运算符与关系运算符一样可以进行矩阵与数值之间的比较,方式为将矩阵的每一个元素都与数值进行比较,比较结果为相同维数的矩阵,矩阵的每一个元素都代表比较矩阵中相同位置上的元素与数值的逻辑运算结果。

使用逻辑运算符比较两个相同维数的矩阵时,按元素来进行比较,其结果是一个包含1和0的矩阵。0元素表示逻辑为假,1元素表示逻辑为真。

● A&B:返回一个与A和B相同维数的矩阵。在这个矩阵中,A和B对应元素都为非零时,对应项为1;否则为0。

● A|B:返回一个与A和B相同维数的矩阵。在这个矩阵中,A和B对应元素只要有一个为非零,则对应项为1;否则为0。

● ~A:返回一个与A和B相同维数的矩阵。在这个矩阵中,A是零时,对应项为1;否则为0。

除了上面的逻辑运算符,MATLAB还提供了各种逻辑函数,如表2.13所示。

表2.13 MATLAB部分逻辑函数

2.2.4 运算优先级

MATLAB中具体的运算优先级排列如表2.14所示。在表达式中,算术运算符优先级最高,其次是关系运算符,最后是逻辑运算符。需要时,可通过加括号来改变运算顺序。

表2.14 运算符优先级

注:表中优先级数值越小则优先级别越高。在表达式的书写中,建议采用括号的方式明确运算的先后顺序。