MATLAB编程与应用系列-第3章 矩阵运算(3)
admin
2023-07-26 14:40:05
0次

本系列教程来源于出版设计《基于MATLAB编程基础与典型应用书籍》,如涉及版权问题,请联系:156204968@qq.com。 出版社:人民邮电出版社, 页数:525。

本系列教程目前基于MATLABR2006a,可能对于更高级版本的功能和函数有差异,教程中如有问题,请联系:156204968@qq.com

###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”为矩阵运算的函数名。
(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

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...