基本算术运算符:+(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方)。
- MATLAB的算术运算是在矩阵意义下进行的。
- 单个数据的算术运算只是矩阵运算的一种特例。
只讲除法运算:
在MATLAB中,有两种矩阵除法运算:右除/和左除\。
如果A矩阵是非奇异方阵,则B/A
等效于B×inv(A)
,A\B
等效于inv(A)×B
。
奇异矩阵:对应行列式为0的矩阵。
在Matlab中计算线性方程组Ax=b的解时,可以通过左除运算得到,即x=A\b=inv(A)×b。
点运算点运算符:.*、./、.\和.^。
两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵同型。
关系运算关系运算符:=(大于或等于)、==(等于)、~=(不等于)。
当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为1,否则为0。
注意不等于号是~=。
-
当参与比较的量是两个同型的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,最终的关系运算的结果是一个与原矩阵同型的矩阵,它的元素由0或1组成。
-
当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,最终的关系运算的结果是一个与原矩阵同型的矩阵,它的元素由0或1组成。
A = [24 35 13; 22 63 23; 39 47 80];
P = rem(A, 2) == 0
结果如下:
P =
3×3 logical 数组
1 0 0
1 0 0
0 0 1
逻辑运算
逻辑运算符:&(与)、I(或)和~(非)。
设参与逻辑运算的是两个标量a和b,那么运算规则为:
- a&b a、b全为非零时,运算结果为1,否则为0。
- alb a、b中只要有一个为非零时,运算结果为1。
- ~a当a为零时,运算结果为1;当a为非零时,运算结果为0。
在算术运算、关系运算和逻辑运算中,算术运算的优先级最高,逻辑运算优先级最低,但逻辑非运算是单目运算,它的优先级比双目运算要高。这个规则了解即可,通过加括号可以实现自己控制计算顺序。
若参与逻辑运算的是两个同型矩阵,那么将对矩阵相同位置上的元素按标量规则逐个进行运算,最终运算结果是一个与原矩阵同型的矩阵,其元素由1或0组成。
若参与逻辑运算的一个是标量,一个是矩阵,那么将在标量与矩阵中的每个元素之间按标量规则逐个进行运算,最终运算结果是一个与原矩阵同型的矩阵,其元素由1或0组成。
&&和||被称为&和|的short circuit形式。
A&B: 首先判断A的逻辑值,然后判断B的值,然后进行逻辑与的计算。A和B可以为矩阵。
A&&B:首先判断A的逻辑值,如果A的值为假,就可以判断整个表达式的值为假,就不需要再判断B的值。A和B不能是矩阵,只能是标量。
PS:Matlab里面的“|”和“||”运算符也有这样的区别。