MATLAB编程与应用系列-第3章 矩阵运算(3)

本系列教程来源于出版设计《基于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./BS分别被B的元素左除S\BB矩阵分别左除S
A./BA的元素被B的对应元素除A/B矩阵A右除B即A的逆阵与B相乘
B.\A结果一定与上行相同B\AA左除B(一般与上行不同)
A.^SA的每个元素自乘S次A^SA矩阵为方阵时,自乘S次
A.^SS为小数时,对A各元素分别求非整数幂,得出矩阵A^SS为小数时,方阵A的非整数乘方
S.^B分别以B的元素为指数求幂值S^BB为方阵时,标量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:
&gt;&gt; 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];
&gt;&gt; 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。在命令窗口中输入:
&gt;&gt; C1=A==B %A、B矩阵对应元素相等的返回1,否则返回0
②判断矩阵A的元素是否大于等于矩阵B对应的元素,并将结果返回给矩阵C2。在命令窗口中输入:
&gt;&gt; C2=A&gt;=B %A、B矩阵对应元素A大于等于B的返回1,否则返回0
③判断矩阵A、B对应的元素是否不相同,并将结果返回给矩阵C3。在命令窗口中输入:
&gt;&gt; C3=A~=B %A、B矩阵对应元素相等的返回0,否则返回1

(2) 逻辑运算
逻辑操作符有:&(与)、|(或)、~(非)和xor(异或)。在逻辑运算中,非0元素表示真(1),0元素表示假(0),逻辑运算的结果为0或1,逻辑运算法则具体见表3.5所示。

表3.5 逻辑运算

aba&ba or b~axor(a,b)
000010
010111
100101
111100

逻辑操作的需要满足以下运算规则:

  • 若两个变量都是标量,则结果为0、1的标量;
  • 若两个变量都是数组,则必须大小相同,结果也是同样大小的数组;
  • 若是一个数组和一个标量进行逻辑运算,则把数组的每个元素分别与标量比较,结果为与数组大小相同的数组。

除了上面的逻辑操作符外,MATLAB还提供了&&(先决与)逻辑运算符和||(先决或)逻辑运算符。

&&(先决与)逻辑运算符是当该运算符的左边为1(真)时,继续执行该运算符右边的运算,并执行与逻辑运算;否则,不再执行该运算符右边的运算,并立即给出运算的结果为0(假)。

||(先决或)逻辑运算符是当该运算符的左边为1(真)时,就不需要继续执行该符号右边的运算,并立即得出该逻辑运算结果为1(真);否则,就要继续执行该符号右边的运算,并执行或逻辑运算。

【例3.21】逻辑运算
在命令窗口中输入以下内容,生成矩阵A和矩阵B:
&gt;&gt; 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];
&gt;&gt; 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。在命令窗口中输入:
&gt;&gt; C1=A&B %计算A和B之间逻辑与的值
②若计算A和B之间逻辑或的值,并将结果返回给矩阵C2。在命令窗口中输入:
&gt;&gt; C2=A|B %计算A和B之间逻辑或的值
③若计算A的逻辑非,并将结果返回给矩阵C3。在命令窗口中输入:
&gt;&gt; C3=~A %计算A的逻辑非
④若计算A和B之间逻辑异或,并将结果返回给矩阵C4。在命令窗口中输入:
&gt;&gt; C4=xor(A,B) %计算A和B之间逻辑异或

【例3.22】先决逻辑运算
在命令窗口中输入以下变量a、b和c:
&gt;&gt; a=0;
&gt;&gt; b=5;
&gt;&gt; c=10;
①进行先决与操作,在命令窗口中输入以下内容:
&gt;&gt; (a~=0)&&(b&lt;c)
运算结果如下:
ans =<br/>0
②进行先决与操作,在命令窗口中输入以下内容:
&gt;&gt; (a~=0)||(b&lt;c)
运算结果如下:
ans =<br/>1

(3)逻辑函数运算

MATLAB中提供的一些函数返回的结果为真(1)和假(0),这样的函数包括关系逻辑函数、工作状态判断函数、特殊数据判断函数和数据类型函数。表3.6所示为关系逻辑函数以及对应的功能描述。

表3.6 关系逻辑函数

函数名功能函数名功能
all(A)判断A的列向量元素是否全非0,全非0则为1isnan(A)判断A的各元素值是否为NAN,是则为1
any(A)判断A的列向量元素中是否有非0元素,有则为1isnumeric(A)判断数组A的元素是否全为数值型数组
isequal(A,B)判断A、B对应元素是否全相等,相等为1isreal(A)判断数组A的元素是否全为实数,是则为1
isempty(A)判断A是否为空矩阵,为空则为1,否则为0isprime(A)判断A的各元素值是否为质数,是则为1
isfinite(A)判断A的各元素值是否有限,是则为1isspace(A)判断A的各元素值是否为空格,是则为1
isinf(A)判断A的各元素值是否无穷大,是则为1find(A)寻找A数组非0元素的下标和值

(4)运算符优先级

MATLAB提供了多种运算符号,各种运算符执行的先后顺序是根据其所具有的优先级来决定的。下面列出了各种运算符的优先级顺序,由上至下优先级递减,每行的优先级相同:

a) 括号()
b) '(矩阵转置)、^ (矩阵幂)和.'(数组转置)、.^(数组幂)
c) ~(逻辑非)、代数正+、代数负-
d) (乘)、/(左除)、(右除)和.(点乘)、./(点左除)、.(点右除)
e) +、-(加减)
f) 冒号:
g) <、<=、>、>=、~=
h) &(逻辑与)
i) |(逻辑或)
j) &&(先决与)
k) ||(先决或)

作者:德特数据
联系方式:156204968@qq.com

转载于:https://blog.51cto.com/14047253/2310309

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值