【Matlab学习1.6】矩阵元素的引用(算术运算、关系运算、逻辑运算)
算术运算
基本算术运算
基本算术运算符:+
(加)、-
(减)、*
(乘)、/
(右除)、\
(左除)、^
(乘方)。
Matlab 的算术运算是在矩阵意义下进行的。单个数据的算术运算只是矩阵运算的一种特例。
加法运算
若两矩阵同型,则运算时两矩阵的相应元素相加减。
若两矩阵不同型,则 Matlab 将给出错误信息。
一个标量也可以和矩阵进行加减运算,这时把标量和矩阵的每一个元素进行加减运算。
乘法运算
矩阵 A 和 B 进行乘法运算,要求A的列数与B的行数相等,此时则称 A、B 矩阵是可乘的,或称 A 和 B 两矩阵维数和大小相容。
如果两者的维数或大小不相容,则将给出错误信息,提示用户两个矩阵是不可乘的。
除法运算
在 Matlab 中,有两种矩阵除法运算:右除 / 和左除 \ 。
记忆方法:竖线倒向哪边,哪边是分母(分母也是被压在横线下)
如果 A 矩阵是非奇异方阵(注:可逆矩阵),则B/A
等效于B*inv(A)
,A\B
等效于inv(A)*B
。(注:inv 函数是求逆矩阵的函数)
例1.6.1:
>> A = [1,2,3; 4,2,6; 7,4,9]; >> B = [4,3,2; 7,5,1; 12,7,92]; >> C1 = B/A C1 = -0.1667 -3.3333 2.5000 -0.8333 -7.6667 5.5000 12.8333 63.6667 -36.5000 >> C2 = A\B C2 = 0.5000 -0.5000 44.5000 1.0000 0.0000 46.0000 0.5000 1.1667 -44.8333 >> 3/4 #即四分之三 ans = 0.7500 >> 4\3 #即四分之三 ans = 0.7500 >> a = [10.5,25] a = 10.5000 25.0000 >> a/5 ans = 2.1000 5.0000 >> 5\a ans = 2.1000 5.0000
乘方运算
一个矩阵的乘方运算可以表示成A^x
,要求 A 为方阵,x 为标量。
例1.6.2:
>> A = [1,2,3; 4,5,6; 7,8,0]; >> A^2 #即A*A ans = 30 36 15 66 81 42 39 54 69
点运算
点运算符:.*
、./
、.\
和.^
。
两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵同型。
例1.6.3:
>> A = [1,2,3; 4,5,6; 7,8,9]; >> B = [-1,0,1; 1,-1,0; 0,1,1]; >> C = A.*B #A、B矩阵对应元素相乘 C = -1 0 3 4 -5 0 0 8 9 >> D = A*B #A、B矩阵相乘 D = 1 1 4 1 1 10 1 1 16
例1.6.4:
当 x = 0.1、0.4、0.7、1时,分别求 y = sin x cos x 的值。
>> x=0.1:0.3:1; >> y=sin(x).*cos(x) y = 0.0993 0.3587 0.4927 0.4546
关系运算
关系运算符:<
(小于)、<=
(小于或等于)、>
(大于)、>=
(大于或等于)、==
(等于)、~=
(不等于)。(尤其注意Matlab中用~
代表“非”。)
1.当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为1,否则为0。
2.当参与比较的量是两个同型的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,最终的关系运算的结果是一个与原矩阵同型的矩阵,它的元素由0或1组成。
3.当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,最终的关系运算的结果是一个与原矩阵同型的矩阵,它的元素由0或1组成。
例1.6.5:
>> 3 > 4 >> x = 5 >> x == 5 #建立3阶方阵A,判断A的元素是否为偶数 >> A = [24,35,13; 22,63,23; 39,47,80] >> P = rem(A,2)==0
逻辑运算
逻辑运算符:&
(与)、|
(或)和~
(非)。
设参与逻辑运算的是两个标量 a 和 b ,那么运算规则为:
1.a&b
a、b全为非零时,运算结果为1,否则为0。
2.a|b
a、b中只要有一个为非零时,运算结果为1 。
3.~a
当 a 为零时,运算结果为1;当 a 为非零时,运算结果为0。
若参与逻辑运算的是两个同型矩阵,那么将对矩阵相同位置上的元素按标量规则逐个进行运算,最终运算结果是一个与原矩阵同型的矩阵,其元素由1或0组成。
若参与逻辑运算的一个是标量,一个是矩阵,那么将在标量与矩阵中的每个元素之间按标量规则逐个进行运算,最终运算结果是一个与矩阵同型的矩阵,其元素由1或0组成。
例1.6.6:
>> 3<4 & 6>5 >> ~(9==1) >> ~9 == 1 #水仙花数是指各位数字的立方之和等于该数本身的三位正整数,求全部水仙花数 >> m = 100:999; >> m1 = rem(m,10); >> m2 = rem(fix(m/10),10); >> m3 = fix(m/100); >> k = find(m==m1.*m1.*m1+m2.*m2.*m2+m3.*m3.*m3) >> s = m(k)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话