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