前言
matlab基本运算包括算术运算、关系运算和逻辑运算。程序设计语言中一般都包含这三种运算。matlab的运算都是基于矩阵进行的,既有基于矩阵意义下的,也有基于矩阵元素的运算。
一、算术运算
基本算数运算
基本算术运算符:+(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方)。
-
加减运算
要求矩阵同型。
标量也可以和矩阵进行加减运算,此时是和每一个元素进行加减运算。 -
乘法运算
矩阵A和B相乘要求A的列数等于B的行数,即A和B维数和大小相容 -
除法运算
分为右除/和左除\。
如果A矩阵是非奇异矩阵,则B/A等效于B*inv(A),A\B等效与inv(A)*B。
对于矩阵来说,右除和左除表示两种不同的除数矩阵和被除数矩阵关系。>> A=[1,2,3;4,2,6;7,4,9]; >> B=[4,3,2;7,5,1;12,7,92]; >> C1=B/A C1 = -0.1667 -3.3333 2.5000 -0.8333 -7.6667 5.5000 12.8333 63.6667 -36.5000 >> C2=A\B C2 = 0.5000 -0.5000 44.5000 1.0000 0.0000 46.0000 0.5000 1.1667 -44.8333 >> 3/4 ans = 0.7500 >> 4\3 ans = 0.7500 >> a=[10.5,25] a = 10.5000 25.0000 >> a/5 ans = 2.1000 5.0000 >> 5\a ans = 2.1000 5.0000
-
乘方运算
一个矩阵的乘方运算可以表示为A^x,要求A为方针,x为标量。>> A=[1,2,3;4,5,6;7,8,0]; >> A^2 ans = 30 36 15 66 81 42 39 54 69
点运算
点运算符:.*、./、.\和.^。
两矩阵进行点运算是指他们的对应元素进行相关运算,相当于普通的算术运算,要求矩阵同型。
>> A=[1,2,3;4,5,6;7,8,9];
>> B=[-1,0,1;1,-1,0;0,1,1];
>> C=A.*B
C =
-1 0 3
4 -5 0
0 8 9
>> D=A*B
D =
1 1 4
1 1 10
1 1 16
二、关系运算
关系运算符:<(小于)、<=(小于或等于)、>=(大于或等于)、==(等于)、~=(不等于)。
当两个比较量为标量时,直接比较两个数的大小。若关系成立,关系表达式结果为1,否者为0。
> 3>4
ans =
logical
0
>> x=5
x =
5
>> x==5
ans =
logical
1
当参与比较的量为两同型矩阵时,最终关系运算结果时一个与原矩阵同型的矩阵,元素由0或1组成。
当参与比较的量为一个标量和一个矩阵时,把标量与矩阵的每个元素逐个比较,最终结果为一个与原矩阵同型的矩阵,元素由0或1组成。
例:建立三阶方阵A,判断A的元素是否为偶数。
>> A=[24,35,13;22,63,23;39,47,80]
A =
24 35 13
22 63 23
39 47 80
>> P=rem(A,2)==0%rem函数为取余
P =
3×3 logical 数组
1 0 0
1 0 0
0 0 1
三、逻辑运算
逻辑运算符:&(与)、|(或)和~(非)。
设两个标量a和b,运算规则:
-
a&b a、b全为非零时,运算结果为1,否则为0。
-
a|b a、b中只要有一个非零,结果为1。
-
~a 当a为零时,运算结果为1;当a为非零时,运算结果为0。
>> 3<4&6>5 ans = logical 1 >> ~(9==1) ans = logical 1 >> ~9==1 ans = logical 0
例:求水仙花数(水仙花数是指各位数字的立方之和等于该数本身的三位正整数)
>> m=100:999;
>> m1=rem(m,10);
>> m2=rem(fix(m/10),10);
>> m3=fix(m/100);
>> k=find(m==m1.*m1.*m1+m2.*m2.*m2+m3.*m3.*m3)
k =
54 271 272 308
>> s=m(k)
s =
153 370 371 407
三种运算有优先级,算术运算优先级最高,逻辑运算优先级最低,但逻辑运算是单目运算,优先级高于双目运算。