3.1 运算符

MATLAB提供了丰富的运算符,能满足用户的各种应用需求。这些运算符包括算术运算符、关系运算符和逻辑运算符三种。本节将简要介绍各种运算符的功能。

3.1.1 算术运算符

MATLAB语言的算术运算符见表3-1。

表3-1 MATLAB语言的算术运算符

其中,算术运算符加减乘除及乘方与传统意义上的加减乘除及乘方类似,用法基本相同,而点乘、点乘方等运算有特殊的意义。点运算是指元素点对点的运算,即矩阵内元素对元素之间的运算。点运算要求参与运算的变量在结构上必须是相似的。

MATLAB的除法运算较为特殊。对于简单数值而言,算术左除与算术右除也不同。算术右除与传统的除法相同,即a/b=a÷b;而算术左除则与传统的除法相反,即a\b=b÷a。对矩阵而言,算术右除A/B相当于求解线性方程X×A=B的解;算术左除相当于求解线性方程A×X=B的解。点左除与点右除与上面点运算相似,是变量对应于元素进行点除。

在MATLAB命令行窗口中输入以下内容。

>> (10+4*(6-4))/2^3 

在上述表达式输入完成后,按[Enter]键,该指令被执行,并显示如下结果。

ans = 
     2.2500 

在命令行窗口中实际运行的情况,如图3-1所示。

图3-1 计算进程

3.1.2 关系运算符

关系运算符主要用于对矩阵与数、矩阵与矩阵进行比较,返回表示二者关系的由数0和1组成的矩阵,0和1分别表示不满足和满足指定关系。

>> a=[1:5]; 
>> a<10                            %指定逻辑关系 
ans = 
     1     1     1     1     1     %所有对象满足条件 

MATLAB语言的关系运算符见表3-2。

表3-2 MATLAB语言的关系运算符

3.1.3 逻辑运算符

MATLAB语言进行逻辑判断时,所有非零数值均被认为真,而零为假。在逻辑判断结果中,判断为真时输出1,判断为假时输出0。

注意:这里输出的0,1与数值0,1不同,前者是逻辑类型真假的代号,属于逻辑类型,后者是整型数值。

MATLAB语言的逻辑运算符见表3-3。

表3-3 MATLAB语言的逻辑运算符

在算术、关系、逻辑三种运算符中,算术运算符优先级最高,关系运算符次之,而逻辑运算符优先级最低。在逻辑运算符中,“非”的优先级最高,“与”和“或”有相同的优先级。

>> 1<4+1 
ans = 
     1 
>> 1<(4+1) 
ans = 
     1

算术运算符的等级高于关系运算符,因此上面的两种表示方法是同样的结果。

>> (1<4)+1 
ans = 
     2 

符号函数sign与逻辑符号有相同的作用,函数调用格式如下。

y=sign(x)

x是任何有效的数值类型表达式,若x>0,则函数返回值y=1;反之,返回值y=0。

(1)进行逻辑运算。

>> 5|0 
ans = 
     1

(2)逻辑与算术运算。

>> 5|0-1 
ans = 
     1 

(3)逻辑类型与数值类型的区别。

>> sign(5|0) 
未定义与 'logical' 类型的输入参数相对应的函数 'sign'。

上面的命令中“5|0”输出逻辑类型的值,而sign(x)中x只能是数值类型,类型不匹配,每次出现错误信息,命令无法进行。

3.1.4 操作实例

例1:练习四则运算。

例1

>> 5*(6+15)/16 
ans = 
    6.5625 
>> a=5; 
>> b=6; 
>> c=34; 
>> a*b/c 
ans = 
    0.8824 

例2:练习关系符号运算。

例2

>> 15>6<=7 
ans = 
     1 

例3:练习逻辑符号运算。

例3

>> xor (~0|6-7,8) 
ans = 
     0