上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.5 运算符
运算符包括:算术运算符、关系运算符和逻辑运算符。
3.5.1 算术运算符
1.矩阵运算
矩阵的运算要符合相应的运算规则(此处不再赘述)。
(1)加减(+、−)
>> a=[4 5;7 3]↙
a = 4 5 7 3
>> b=[2 9;10 6]↙
b = 2 9 10 6
>> a+b↙
ans = 6 14 17 9
>> a-b↙
ans = 2 -4 -3 -3
>> a+10↙
ans = 14 15 17 13
(2)乘除(*、/)
>> a=[4 5;7 3;10 6]↙
a = 4 5 7 3 10 6
>> b=[2 9;10 6;-1 -3]↙
b = 2 9 10 6 -1 -3
>> a*b'↙
ans = 53 70 -19 41 88 -16 74 136 -28
>> a/b↙
ans = 0.3333 0.3333 0 -0.1538 0.7308 0 -0.0000 1.0000 0
(3)右除(\)
>> a=rand(3,2)↙
a = 0.9572 0.1419 0.4854 0.4218 0.8003 0.9157
>> b=rand(3,2)↙
b = 0.7922 0.0357 0.9595 0.8491 0.6557 0.9340
>> a\b↙
ans = 0.8690 -0.0998 0.1783 1.2788
(4)乘方(^)
>> a=rand(3)↙
a = 0.5060 0.9593 0.1493 0.6991 0.5472 0.2575 0.8909 0.1386 0.8407
>> a^3↙
ans = 1.6561 1.6428 0.8004 1.6031 1.5407 0.7914 2.1680 1.9382 1.1993
(5)转置('),行列互换
>> a=rand(3)↙
a = 0.2543 0.9293 0.2511 0.8143 0.3500 0.6160 0.2435 0.1966 0.4733
>> a'↙
ans = 0.2543 0.8143 0.2435 0.9293 0.3500 0.1966 0.2511 0.6160 0.4733
(6)索引(:)
>> a=rand(5)↙
a = 0.3517 0.2858 0.0759 0.1299 0.1622 0.8308 0.7572 0.0540 0.5688 0.7943 0.5853 0.7537 0.5308 0.4694 0.3112 0.5497 0.3804 0.7792 0.0119 0.5285 0.9172 0.5678 0.9340 0.3371 0.1656
>> a(:,2)↙
ans = 0.2858 0.7572 0.7537 0.3804 0.5678
>> a(:,2:end)↙
ans = 0.2858 0.0759 0.1299 0.1622 0.7572 0.0540 0.5688 0.7943 0.7537 0.5308 0.4694 0.3112 0.3804 0.7792 0.0119 0.5285 0.5678 0.9340 0.3371 0.1656
2.数组运算
数组运算符是数组间元素与元素间的运算。
(1)点乘(.*)
>> a=randi([1 9],[3,2])↙
a = 7 1 8 4 8 3
>> b=randi([1 9],[3,2])↙
b = 8 2 4 3 9 2
>> a.*b↙
ans = 56 2 32 12 72 6
(2)点左除(./)
>> a./b↙
ans = 0.8750 0.5000 2.0000 1.3333 0.8889 1.5000
(3)点右除(.\)
>> a.\b↙
ans = 1.1429 2.0000 0.5000 0.7500 1.1250 0.6667
(4)点乘方(.^)
>> a.^b↙
ans = 5764801 1 4096 64 134217728 9
(5)点转置(.')
>> (a+b*i)'↙
ans = 7.0000 - 8.0000i 8.0000 - 4.0000i 8.0000 - 9.0000i 1.0000 - 2.0000i 4.0000 - 3.0000i 3.0000 - 2.0000i
>> (a+b*i).'↙
ans = 7.0000 + 8.0000i 8.0000 + 4.0000i 8.0000 + 9.0000i 1.0000 + 2.0000i 4.0000 + 3.0000i 3.0000 + 2.0000i
3.5.2 关系运算符
关系运算符用于大小相等比较,可以是两个单独的元素之间,也可以是两个数组之间进行比较。
1.大于小于(>、<)
>> a=randi([1 9],[3,2])↙
a = 9 8 4 4 2 3
>> b=randi([1 9],[3,2])↙
b = 4 9 1 9 2 6
>> a>b↙
ans = 1 0 1 0 0 0
>> a>5↙
ans =
1 1 0 0 0 0
>> b<3↙
ans = 0 0 1 0 1 0
2.大于等于和小于等于(>=、<=)
>> a=randi(10,[1,5])↙
a = 6 3 4 5 3
>> a>=5↙
ans = 1 0 0 1 0
>> a<=3
ans = 0 1 0 0 1
3.等于和不等(==、~=)
>> a=randi(10,[1,5])↙
a = 9 2 3 2 3
>> a==2↙
ans = 0 1 0 1 0
>> a~=2
ans = 1 0 1 0 1
>> a='Hello';↙ >> b='hello';↙ >> a==b↙
ans = 0 1 1 1 1
3.5.3 逻辑运算符
1.逻辑与(&、&&),两个对象均为真,结果才为真
>> a=5;b=3;c=0;↙ >> disp(a & b)↙
1
>> disp(a && c)↙
0
2.逻辑或(|、||),两个对象中只要有一个为真,结果就为真
>> a=5;b=3;c=0;↙ >> disp(a | b)↙
1
>> disp(b || c)↙
1
3.逻辑非(~),原结果为真,则变为假,原结果为假,则改变为真
>> a=5;b=3;c=0;↙ >> ~a↙
ans = 0
>> ~c↙
ans = 1
>> a=[];↙ >> ~isempty(a)↙
ans = 0
3.5.4 逻辑运算函数
1.异或运算(xor),两个对象一个为真,一个为假时,结果为真;否则结果为假
>> a=5;b=3;c=2;↙ >> xor(a>b,b>c)↙
ans = 0
>> xor(a<b,c<b)↙
ans = 1
2.位与运算(bitand),非负整数二进制位之间的与运算
>> bitand(3,5)↙
ans = 1
3.位或运算(bitor)
>> bitor(3,5)↙
ans = 7
4.位反运算(bitcmp)
>> bitcmp(uint8(3))↙
ans = 252
5.位异或运算(bitxor)
>> bitxor(3,5)↙
ans = 6
6.任意为真(any)
>> a=randi([0 1],4)↙
a = 0 1 0 1
0 0 1 0 0 0 1 0 0 1 0 1
>> any(a)↙
ans = 0 1 1 1
>> any(a,2)↙
ans = 1 1 1 1
函数any的第2个参数指定在行或列上进行判断,默认值为1,在列上判断,即某列的各个值只要有任意一个为真,即为真;如果参数值为2,则在行上判断,即某行的各个值只要有任意一个为真,即为真。
7.所有为真(all)
>> a=randi([0 1],4)↙
a = 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 0
>> all(a)↙
ans = 0 0 0 0
>> all(a,2)↙
ans = 1 0 0 0
函数all的第2个参数的含义与函数any相同。