Mtalab关系运算与逻辑运算
1.关系运算
MATLAB 提供了6种关系运算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或 等于)、==(等于)、~=(不等于)。
MATLAB 还提供了与6种关系运算符对应的函数It 、le 、gt 、ge 、eq 、ne。
关系运算符的运算法则:
(1)当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为1, 否则为0。
>> 12>3
ans =
1
>> eq(2,3)
ans =
0
(2)当参与比较的量是两个同型的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个与原矩阵同型的矩阵, 它的元素由0或1组成。
(3)当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个与原矩阵同型的矩阵,它的元素由0或1组成。
例1 产生5阶随机方阵A, 其元素为[10,90]区间的随机整数,然后判断A的元素是否能被3整除。
(1)生成5阶随机方阵A。
>> A=fix((90-10+1)*rand(5)+10)
A =
75 17 22 21 63
83 32 88 44 12
20 54 87 84 78
83 87 49 74 85
61 88 74 87 64
(2)判断A的元素是否可以被3整除。
>> P=rem(A,3)==0
P =
1 0 0 1 1
0 0 0 0 1
0 1 1 1 1
0 1 0 0 0
0 0 0 1 0
MATLAB 还提供了一些关系运算函数
关系运算函数
函 数 名 | 含 义 |
---|---|
all | 若向量的所有元素非零,则结果为1,否则为0 |
any | 若向量中任何一个元素非零,则结果为1,否则为0 |
exist | 检查变量在工作空间中是否存在,若存在,则结果为1,否则为0 |
find | 找出向量或矩阵中非零元素的位置 |
isempty | 若被查变量是空矩阵,则结果为1,否则为0 |
isinf | 若元素是±inf,则结果矩阵相应位置元素取1,否则取0 |
isnan | 若元素是nan,则结果矩阵相应位置元素取1,否则取0 |
isfinite | 若元素值大小有限,则结果矩阵相应位置元素取1,否则取0 |
isinteger | 若被查变量是整型,则取1,否则取0 |
isnumeric | 若被查变量是数值型,则取1,否则取0 |
isreal | 若被查变量是实数,则取1,否则取0 |
isfloat | 若被查变量是浮点型,则取1,否则取0 |
例2 建立矩阵A, 然后找出大于4的元素的位置,并输出相应位置的元素。
>> A=[4,-65,-54,0,6;56,0,67,-45,0]
A =
4 -65 -54 0 6
56 0 67 -45 0
>> k=find(A>4)
k =
2
6
9
>> A(k)
ans =
56
67
6
注意:find函数得到的矩阵元素的位置是以相应元素的序号来表示的。
2.逻辑运算
MATLAB 提供了3种逻辑运算符:&(与)、 | (或)和~(非)。
提供了4个逻辑运算函数:and(a,b) 、or(a,b) 、not(a) 和xor(a,b), 分别代表与、或、非、异或运算。
在逻辑运算中,非零元素为真,用1表示;零元素为假,用0表示。
设参与逻辑运算的是两个标量a和 b, 逻辑运算的含义如下。
(1)a&b或函数and(a,b): 当 a 、b 全为非零时,结果为1,a 、b只要有一个为零则结果 为0。
(2)a|b 或函数 or(a,b): 当 a、b 中只要有一个非零,结果为1,a、b 全为零时结果为0。
(3)~a 和函数 not(a): 当 a 是零时,结果为1;当a 非零时,结果为0。
(4)函数xor(a,b): 当 a 、b 的值不同时,结果为1;当a 、b的值相同时,结果为0。
逻辑运算还有以下运算法则:
(1)若参与逻辑运算的是两个同型矩阵,那么运算将对矩阵相同位置上的元素按标量规则逐个进行。最终运算结果是一个与原矩阵同型的矩阵,其元素由1或0组成。
(2)若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。最终运算结果是一个与矩阵同型的矩阵,其元素由1或0组成。
(3)逻辑非是单目运算符,也服从矩阵运算规则。
>> A=[4,65,-54,0,6]
A =
4 65 -54 0 6
>> B=[0,5,3,2,-6]
B =
0 5 3 2 -6
>> A&B
ans =
0 1 1 0 1
在算术运算、关系运算和逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。