1.先看两个难题
在Matlab中程式设计计算:1>=1+1
结果是甚么,2吗?却是0?
2.基本概念
在Matlab中,能任一女团采用微积分操作符、亲密关系操作符和方法论操作符等逐步形成的函数展开演算,Matlab展开演算处置的次序依赖于每一操作符的错误率;
Matlab中操作符的错误率是指,当多种相同操作符女团采用时,优先选择演算的次序,操作符错误率越高,将优先选择演算;
假如数个操作符具备完全相同的错误率(比如乘法和乘法),所以依照表达式右面展开演算处置;
3.错误率次序
Matlab操作符的错误率规则,从高到低排序如下:
1)括号 ()
2)转置 (.), 幂(.^), 复共轭转置 (), 矩阵的幂(^)
3)一元减的幂(.^-),一元加的幂(.^+),方法论非的幂(.^~) 一元减的矩阵的幂(^-), 一元加的矩阵的幂(^+),方法论非的矩阵的幂 (^~).
4)一元加(+),一元减(-),方法论非(~)
5)乘法(.*),右除(./),左除(.\),矩阵的乘法(*),矩阵的右除(/),矩阵的左除 (\)
6)乘法 (+), 乘法(-)
7)冒号(:)
8)亲密关系操作符(<),(<=),(>), (>=), (==), (~=)
9)方法论与(&)
10)方法论或(|)
11)短路方法论与(&&)
12)短路方法论或 (||)
4.程序示例
1>=1+1 %四则演算高于方法论演算
(1>=1)+1
1:2+3 %乘法高于冒号
(1:2)+3
1|1&0 %与优先选择于或
(1|1)&0
5.基本演算中字符串大小不一的相容性
这里相容性是指,两个大小不一相同的字符串是否能够展开演算,这里的相容性演算主要指字符串的四则演算;
我们知道,两个完全完全相同大小不一的字符串能演算;若演算数其中之一是标量的两个大小不一相同的字符串可以演算;若两个是行向量,两个是列向量,能演算;若两个是矩阵,两个是具备完全相同行数的列向量,能演算;若两个是矩阵,两个是具备完全相同列数的行向量,能演算;若两个是矩阵,两个是具备完全相同行数和列数的三维字符串,能演算;
说明,以上是针对2016以及更高版本的情况;
6.程序示例
a=[1 2;3 4]
b=[1 2]
c=[3;4]
a+a
a+2 %矩阵与标量演算:将标量扩展为前面矩阵的相容性大小不一,再遵循字符串四则运算
a.*2
a*2
b+c %先扩展为相容性大小不一:b复制行、c复制列再演算
a+b
a+c
a.*b
a.*c
% a*b %无法展开相容性演算
a*c %并非相容性演算,而是前面行等于后面列
d=cat(3,a,a) %构建三维字符串
a+d %相同维度的字符串也可相容性演算
a.*d %可相容性演算
End