MATLAB基础扫盲:运算符优先级与数组运算

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  %可兼容性运算

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空