概述
Matlab的计算都是针对矩阵来的
单个数据的运算只是矩阵运算下的一个特例
(1)基本算数运算
加减运算
只有同型矩阵才能加减运算
一个标量也可以与矩阵加减运算,是吧标量和矩阵的每一个元素相加减
>> A=[1,2,3,4,5;1,2,3,4,5]
A =
1 2 3 4 5
1 2 3 4 5
>> A+1
ans =
2 3 4 5 6
2 3 4 5 6
>> A
A =
1 2 3 4 5
1 2 3 4 5
乘运算
要求两个矩阵可乘,或称两矩阵“维数和大小相容”
A =
1 2 3 4 5
1 2 3 4 5
>> B=[1,2;1,2;;;]
B =
1 2
1 2
>> A*B
错误使用 *
用于矩阵乘法的维度不正确。请检查并确保第一个矩阵中的列数与第二个矩阵中的行数匹配。要执行按元素相乘,请使用 '.*'。
>> C=[1,2;1,2;,;,;1,2]
C =
1 2
1 2
1 2
>> A*C
错误使用 *
用于矩阵乘法的维度不正确。请检查并确保第一个矩阵中的列数与第二个矩阵中的行数匹配。要执行按元素相乘,请使用 '.*'。
>> C*A
ans =
3 6 9 12 15
3 6 9 12 15
3 6 9 12 15
除法运算
(1)右除(/)
B/A=B*inv(A)
(2)左除()
AB=inv(A)*B
inv():逆矩阵
代表了不同的除数与被除数的关系
对于矩阵,不一定相同(想想也应该这样吧啊喂)
乘方运算
>> A^2
错误使用 ^
用于对矩阵求幂的维度不正确。请检查并确保矩阵为方阵并且幂为标量。要执行按元素矩阵求幂,请使用 '.^'。
>> D=[1,2,3;4,5,6;7,8,9]
D =
1 2 3
4 5 6
7 8 9
>> D^2
ans =
30 36 42
66 81 96
102 126 150
(2)点运算(Matlab特色功能)
是指对应元素进行运算,要求俩矩阵同型
.*
./
.
.^
>> A.^A
ans =
1 4 27 256 3125
1 4 27 256 3125
>>
实际使用:
>> x=0.1:0.3:1
x =
0.1000 0.4000 0.7000 1.0000
>> y=sin(x).*cos(x)
y =
0.0993 0.3587 0.4927 0.4546
>> y=sin(x)*cos(x)
错误使用 *
用于矩阵乘法的维度不正确。请检查并确保第一个矩阵中的列数与第二个矩阵中的行数匹配。要执行按元素相乘,请使用 '.*'。
——因为sin和cos在这个式子当中对应两个向量,直接相乘会不相容报错
(3)关系运算
关系运算符
<
<=
>
>=
== 等于
~= 不等于
成立返回1,不成立返回0
>> x=5,y=4
x =
5
y =
4
>> x==y
ans =
logical
0
如果比较的是矩阵,比完了还是个矩阵:
>> D=[1,2,3;4,5,6;7,8,9]
D =
1 2 3
4 5 6
7 8 9
>> C=[1,2,3;5,5,5;7,8,9]
C =
1 2 3
5 5 5
7 8 9
>> D==C
ans =
3×3 logical 数组
1 1 1
0 1 0
1 1 1
如果一个是标量,一个是矩阵,拿标量和元素一个个比较,最终生成的还是矩阵:
>> D==5
ans =
3×3 logical 数组
0 0 0
0 1 0
0 0 0
(4)逻辑运算
&(与)
|(或)
~(非)
>> 3<4&5>6
ans =
logical
0
优先级
>> ~9==1
~9==1
↑
错误: 文本字符无效。请检查不受支持的符号、不可见的字符或非 ASCII 字符的粘贴。
>> ~9==1
ans =
logical
0
>> ~(9==1)
ans =
logical
1
对于矩阵
若参与逻辑运算的是两个同型矩阵
则对相同位置进行逻辑运算,最后生成一个矩阵
如果是标量。。。和上面关系运算一样啦。。。
例:求解水仙花数
>> k=find(m==m1^3+m2^3+m3^3)
错误使用 ^
用于对矩阵求幂的维度不正确。请检查并确保矩阵为方阵并且幂为标量。要执行按元素矩阵求幂,请使用 '.^'。
>> k=find(m==m1.^3+m2.^3+m3.^3)
k =
54 271 272 308
>> s=m(k)
s =
153 370 371 407
最后
以上就是年轻草丛为你收集整理的【Matlab自学】基本运算的全部内容,希望文章能够帮你解决【Matlab自学】基本运算所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复