MATLAB编程与应用系列-第3章矩阵运算(3)-创新互联
###3.1.8 矩阵和数组运算比较 在进行矩阵和数组运算的时候,要认识到矩阵和数组类似运算的区别,两种运算指令形式和实质内涵的异同见表3.3。其中S为标量,A、B为矩阵。 表3.3 矩阵和数组运算对比表 |
数组运算 | 矩阵运算 | |
---|---|---|---|
命令 | 含义 | 命令 | 含义 |
A+B | 对应元素相加 | A+B | 与数组运算相同 |
A-B | 对应元素相减 | A-B | 与数组运算相同 |
S.*B | 标量S分别与B元素的积 | S*B | 与数组运算相同 |
A.*B | 数组对应元素相乘 | A*B | 内维相同矩阵的乘积 |
S./B | S分别被B的元素左除 | S\B | B矩阵分别左除S |
A./B | A的元素被B的对应元素除 | A/B | 矩阵A右除B即A的逆阵与B相乘 |
B.\A | 结果一定与上行相同 | B\A | A左除B(一般与上行不同) |
A.^S | A的每个元素自乘S次 | A^S | A矩阵为方阵时,自乘S次 |
A.^S | S为小数时,对A各元素分别求非整数幂,得出矩阵 | A^S | S为小数时,方阵A的非整数乘方 |
S.^B | 分别以B的元素为指数求幂值 | S^B | B为方阵时,标量S的矩阵乘方 |
A.’ | 非共轭转置,相当于conj(A’) | A’ | 共轭转置 |
exp(A) | 以自然数e为底,分别以A的元素为指数求幂 | expm(A) | A的矩阵指数函数 |
log(A) | 对A的各元素求对数 | logm(A) | A的矩阵对数函数 |
sqrt(A) | 对A的各元素求平方根 sqrtm(A) | A的矩阵平方根函数 | |
f(A) | 求A各个元素的函数值 | funm(A,’FUN’) | 矩阵的函数运算 |
注意:(1)funm(A,’FUN’)要求A必须是方阵,“FUN”为矩阵运算的函数名。
创新互联专注于企业营销型网站建设、网站重做改版、寻甸网站定制设计、自适应品牌网站建设、HTML5、商城网站建设、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为寻甸等各大城市提供网站开发制作服务。
(2)在执行数组与数组之间的运算的时候,参与运算的数组必须同维,运算所得的结果数组也总与原数组同维。
###3.1.9 关系操作和逻辑操作
在使用MATLAB语言进行程序设计时,经常会涉及到程序流程的控制,此时需要对一些问题作出一些判断,为此MATLAB提供了关系操作、逻辑计算以及一些相关的运算函数。
(1)关系运算
关系操作符有:<(小于关系)、<=(小于或等于关系)、>(大于关系)、>=(大于或等于关系)、= =(等于关系)、~=(不等于关系)。
关系运算规则为:
- 若两个变量都是标量,则结果为真(1)或假(0);
- 若两个变量都是数组,则必须大小相同,结果也是同样大小的数组,数组的元素为0或1;
- 若一个数组和一个标量,则把数组的每个元素分别与标量比较,结果为与数组大小相同的数组,数组的元素为0或1。
- 其中<、<=和>、>=,仅对参加比较变量的实部进行比较,而= =和~=,则同时对实部和虚部进行比较。
【例3.20】关系运算
在命令窗口中输入以下内容,生成矩阵A和矩阵B:>> A=[1 2 3 4 5;5 3 4 8 5;6 8 7 6 9;2 6 8 2 1;2 7 9 3 9];
>> B=[5 3 4 8 5;6 8 7 6 9;2 6 8 2 1;2 7 9 3 9;4 5 6 7 8];
①判断矩阵A、B对应的元素是否相同,并将结果返回给矩阵C1。在命令窗口中输入:>> C1=A==B %A、B矩阵对应元素相等的返回1,否则返回0
②判断矩阵A的元素是否大于等于矩阵B对应的元素,并将结果返回给矩阵C2。在命令窗口中输入:>> C2=A>=B %A、B矩阵对应元素A大于等于B的返回1,否则返回0
③判断矩阵A、B对应的元素是否不相同,并将结果返回给矩阵C3。在命令窗口中输入:>> C3=A~=B %A、B矩阵对应元素相等的返回0,否则返回1
(2) 逻辑运算
逻辑操作符有:&(与)、|(或)、~(非)和xor(异或)。在逻辑运算中,非0元素表示真(1),0元素表示假(0),逻辑运算的结果为0或1,逻辑运算法则具体见表3.5所示。
表3.5 逻辑运算
a | b | a&b | a or b | ~a | xor(a,b) |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 1 | 0 |
0 | 1 | 0 | 1 | 1 | 1 |
1 | 0 | 0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 0 | 0 |
逻辑操作的需要满足以下运算规则:
- 若两个变量都是标量,则结果为0、1的标量;
- 若两个变量都是数组,则必须大小相同,结果也是同样大小的数组;
- 若是一个数组和一个标量进行逻辑运算,则把数组的每个元素分别与标量比较,结果为与数组大小相同的数组。
除了上面的逻辑操作符外,MATLAB还提供了&&(先决与)逻辑运算符和||(先决或)逻辑运算符。
&&(先决与)逻辑运算符是当该运算符的左边为1(真)时,继续执行该运算符右边的运算,并执行与逻辑运算;否则,不再执行该运算符右边的运算,并立即给出运算的结果为0(假)。
||(先决或)逻辑运算符是当该运算符的左边为1(真)时,就不需要继续执行该符号右边的运算,并立即得出该逻辑运算结果为1(真);否则,就要继续执行该符号右边的运算,并执行或逻辑运算。
【例3.21】逻辑运算
在命令窗口中输入以下内容,生成矩阵A和矩阵B:>> A=[1 2 3 4 5;5 3 4 8 5;6 8 7 6 9;2 6 8 2 1;2 7 9 3 9];
>> B=[5 3 4 8 5;6 8 7 6 9;2 6 8 2 1;2 7 9 3 9;4 5 6 7 8];
①若计算A和B之间逻辑与的值,并将结果返回给矩阵C1。在命令窗口中输入:>> C1=A&B %计算A和B之间逻辑与的值
②若计算A和B之间逻辑或的值,并将结果返回给矩阵C2。在命令窗口中输入:>> C2=A|B %计算A和B之间逻辑或的值
③若计算A的逻辑非,并将结果返回给矩阵C3。在命令窗口中输入:>> C3=~A %计算A的逻辑非
④若计算A和B之间逻辑异或,并将结果返回给矩阵C4。在命令窗口中输入:>> C4=xor(A,B) %计算A和B之间逻辑异或
【例3.22】先决逻辑运算
在命令窗口中输入以下变量a、b和c:>> a=0;
>> b=5;
>> c=10;
①进行先决与操作,在命令窗口中输入以下内容:>> (a~=0)&&(b<c)
运算结果如下:ans =
0
②进行先决与操作,在命令窗口中输入以下内容:>> (a~=0)||(b<c)
运算结果如下:ans =
1
(3)逻辑函数运算
MATLAB中提供的一些函数返回的结果为真(1)和假(0),这样的函数包括关系逻辑函数、工作状态判断函数、特殊数据判断函数和数据类型函数。表3.6所示为关系逻辑函数以及对应的功能描述。
表3.6 关系逻辑函数
函数名 | 功能 | 函数名 | 功能 |
---|---|---|---|
all(A) | 判断A的列向量元素是否全非0,全非0则为1 | isnan(A) | 判断A的各元素值是否为NAN,是则为1 |
any(A) | 判断A的列向量元素中是否有非0元素,有则为1 | isnumeric(A) | 判断数组A的元素是否全为数值型数组 |
isequal(A,B) | 判断A、B对应元素是否全相等,相等为1 | isreal(A) | 判断数组A的元素是否全为实数,是则为1 |
isempty(A) | 判断A是否为空矩阵,为空则为1,否则为0 | isprime(A) | 判断A的各元素值是否为质数,是则为1 |
isfinite(A) | 判断A的各元素值是否有限,是则为1 | isspace(A) | 判断A的各元素值是否为空格,是则为1 |
isinf(A) | 判断A的各元素值是否无穷大,是则为1 | find(A) | 寻找A数组非0元素的下标和值 |
(4)运算符优先级
MATLAB提供了多种运算符号,各种运算符执行的先后顺序是根据其所具有的优先级来决定的。下面列出了各种运算符的优先级顺序,由上至下优先级递减,每行的优先级相同:
a) 括号()
b) '(矩阵转置)、^ (矩阵幂)和.'(数组转置)、.^(数组幂)
c) ~(逻辑非)、代数正+、代数负-
d) (乘)、/(左除)、(右除)和.(点乘)、./(点左除)、.(点右除)
e) +、-(加减)
f) 冒号:
g) <、<=、>、>=、~=
h) &(逻辑与)
i) |(逻辑或)
j) &&(先决与)
k) ||(先决或)
作者:德特数据
联系方式:156204968@qq.com
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享名称:MATLAB编程与应用系列-第3章矩阵运算(3)-创新互联
本文URL:http://azwzsj.com/article/dodjci.html