MATLAB运算
目录
算术运算
基本算术运算
基本算术运算有+(加)、—(减)、*(乘)、/(右除)、\(左除)、^(乘方)
1.矩阵的加减运算
和线性代数的矩阵加减规则一样,trivial
值得一提的是一个标量也可以和矩阵进行加减运算,这时把标量和矩阵的每一个元素进行加减运算。
x=[2,-1,0;3,2,-4];
y=x-1
y =
1 -2 -1
2 1 -5
2.矩阵的乘法
和线性代数的矩阵乘法规则一样,trivial
A=[1,2,3;4,5,6];
B=[1,2;3,4];
C=A*B
错误使用 *
内部矩阵维度必须一致。
C=B*A
C =
9 12 15
19 26 33
3*A
ans =
3 6 9
12 15 18
k=3;
k*A
ans =
3 6 9
12 15 18
A*k
ans =
3 6 9
12 15 18
3.矩阵除法
在MATLAB中,有两种矩阵除法运算,\ 和 /,分别表示左除和右除
和线性代数的矩阵除法(逆矩阵)规则一样,要求非奇异,trivial
观察除法符号的形状可以知道,A\B表示A的逆左乘B,即inv(A)*B; B/A表示A的逆右乘B,即B*inv(A)
A=[1,2,3;4,2,6;7,4,9];
B=[4,3,2;7,5,1;12,7,92];
C1=A/B
C1 =
7.9623 -4.2453 -0.0943
-4.5472 2.9434 0.1321
-5.1321 3.6415 0.1698
C2=A\B
C2 =
0.5000 -0.5000 44.5000
1.0000 0.0000 46.0000
0.5000 1.1667 -44.8333
C3=B/A
C3 =
-0.1667 -3.3333 2.5000
-0.8333 -7.6667 5.5000
12.8333 63.6667 -36.5000
C4=B\A
C4 =
6.0755 -3.3396 2.6038
-7.6792 5.0566 -2.4340
-0.1321 0.0943 -0.0566
当然了,如果是含有标量的运算,两种除法的结果相同,如3/4=4\3=0.75。又如a=[10,20],则a/5=5\a=[2.5,5] ,这是非常合理的。
a=[10,20]
a =
10 20
a/5
ans =
2 4
5\a
ans =
2 4
4.矩阵的乘方
一个矩阵的乘方运算可以表达为 ,其中A为方阵,x为标量
A=[1,2,3;4,5,6;7,8,9];
A^2
ans =
30 36 42
66 81 96
102 126 150
B=A^0.1
B =
0.8467 + 0.2270i 0.3596 + 0.0578i -0.0965 - 0.1014i
0.4013 + 0.0215i 0.4530 + 0.0134i 0.4429 - 0.0147i
-0.0132 - 0.1739i 0.4846 - 0.0510i 1.0133 + 0.0820i
C=B^10
C =
1.0000 - 0.0000i 2.0000 - 0.0000i 3.0000 - 0.0000i
4.0000 + 0.0000i 5.0000 + 0.0000i 6.0000 + 0.0000i
7.0000 - 0.0000i 8.0000 + 0.0000i 9.0000 + 0.0000i
点运算
在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。
点运算符有 .* 、 ./ 、.\ 和 .^
两矩阵进行点运算是指他们的对应元素进行相关运算,显然要求两矩阵同型。
如果A、B两矩阵同型,则A.*B表示A矩阵和B矩阵的对应元素相乘。
A=[1,2,3;4,5,6;7,8,9];
B=[-1,0,1;1,-1,0;0,1,1];
C=A.*B
C =
-1 0 3
4 -5 0
0 8 9
C=A*B
C =
1 1 4
1 1 10
1 1 16
如果A、B矩阵同型,则A./B表示A矩阵除以B矩阵对应元素。
A=[1,2,3;4,5,6];
B=[-2,1,3;-1,1,4];
C1=A./B
C1 =
-0.5000 2.0000 1.0000
-4.0000 5.0000 1.5000
C3=B.\A
C3 =
-0.5000 2.0000 1.0000
-4.0000 5.0000 1.5000
C2=A.\B
C2 =
-2.0000 0.5000 1.0000
-0.2500 0.2000 0.6667
C4=B./A
C4 =
-2.0000 0.5000 1.0000
-0.2500 0.2000 0.6667
若两矩阵同型,则A.^B表示两矩阵对应元素进行乘方运算。
A=[1,2,3];
B=[4,5,6];
C=A.^B
C =
1 32 729
D=B.^A
D =
4 25 216
>> A=[1,2,3];
>> C=A.^2
C =
1 4 9
A=[1,2,3];
B=[4,5,6];
2.^[A B]
ans =
2 4 8 16 32 64
2.^A
ans =
2 4 8
2.^B
ans =
16 32 64
当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=sin(x).*cos(x)
y =
0.0993 0.3587 0.4927 0.4546
关系运算
关系运算符
都是双目操作符
关系运算符 | 含义 | 函数 |
< | 小于 | lt |
<= | 小于或等于 | le |
> | 大于 | gt |
>= | 大于或等于 | ge |
== | 等于 | eq |
~= | 不等于 | ne |
运算法则
(1)当两个比较量是标量时,关系表达式成立,输出1,否则输出0.
12>4
ans =
1
eq(2,3)
ans =
0
eq(2,2)
ans =
1
(2) 当参与比较的是两个同型的矩阵时,比较的是两矩阵相同位置的元素按关系运算符逐个进行,得出结果。最终结果是 一个与原矩阵同型的矩阵,它的元素由0或1组成。
A=[112,3354,22;234,52,11;23,42,42];
B=[112,34,23;4223,13,45;11,34,42];
A>B
ans =
0 1 0
0 1 0
1 1 0
A>=B
ans =
1 1 0
0 1 0
1 1 1
A==B
ans =
1 0 0
0 0 0
0 0 1
A~=B
ans =
0 1 1
1 1 1
1 1 0
A<B
ans =
0 0 1
1 0 1
0 0 0
A<=B
ans =
1 0 1
1 0 1
0 0 1
(3)当参与比较的一个是标量,另一个是矩阵时,则将标量与矩阵的每一个元素和标量进行关系运算,得出结果。最终结果是 一个与原矩阵同型的矩阵,它的元素由0或1组成。
100>A
ans =
0 0 1
0 1 1
1 1 1
100==A
ans =
0 0 0
0 0 0
0 0 0
100~=A
ans =
1 1 1
1 1 1
1 1 1
关系运算函数
函数名 | 含义 |
all | 若向量的所有元素非0,结果为1,否则为0 |
any | 若向量中任何一个元素非0,结果为1,否则为0 |
exist | 检查变量在空间中是否存在,是输出1,否0 |
find | 找出向量或矩阵中非0元素的位置 |
isempty | 检查变量是否为空矩阵,是输出1,否0 |
isinf | 若元素是+/-inf,是输出1,否0 |
isnan | 若元素是nan,是输出1,否0 |
isfinite | 若元素值大小有限,是输出1,否0 |
isinteger | 若被查变量是整型,输出1,否0 |
isnumeric | 若被查变量是数值型,输出1,否0 |
isreal | 若被查变量是实数,输出1,否0 |
isfloat | 若被查变量是浮点型,输出1,否0 |
例:建立矩阵A,然后找出大于4的元素的位置,并输出相应位置的元素。
>> %建立矩阵
>> A=[4,-65,-54,0,6;56,0,67,-45,0]
A =
4 -65 -54 0 6
56 0 67 -45 0
>> %找出大于4的元素的位置
>> k=find(A>4)
k =
2
6
9
>> %输出相应位置的元素
>> A(k)
ans =
56
67
6
逻辑运算
逻辑运算符 | 含义 | 逻辑运算函数 |
& | 与 | and(a,b) |
| | 或 | or(a,b) |
~ | 非 | not(a) |
异或 | xor(a,b) |
在逻辑运算中,非零元素为真,用1表示;零元素为假,用0表示。
运算结果
a&b:当a、b全非零时,才输出1
a|b:当a、b中至少有一个非零时,输出1
~a:当a为零时,输出1;当a非零时,输出0
xor(a,b):当a、b的值不同时,输出1;当a、b的值相同时,输出0
1&2
ans =
1
1&0
ans =
0
and(1,1)
ans =
1
and(1,0)
ans =
0
2|0
ans =
1
0|0
ans =
0
or(0,0)
ans =
0
not(0)
ans =
1
not(3)
ans =
0
~0
ans =
1
~1
ans =
0
xor(1,1)
ans =
0
xor(0,0)
ans =
0
xor(1,4)
ans =
0
xor(2,3)
ans =
0
运算法则
(1) 当参与逻辑运算的是两个同型的矩阵时,比较的是两矩阵相同位置的元素按逻辑运算符逐个进行,得出结果。最终结果是 一个与原矩阵同型的矩阵,它的元素由0或1组成。
(2)当参与逻辑运算的一个是标量,另一个是矩阵时,则将标量与矩阵的每一个元素和标量进行逻辑运算,得出结果。最终结果是 一个与原矩阵同型的矩阵,它的元素由0或1组成。
A=[1,2,3,4,5];
B=[0,2,5,4,9];
A&B
ans =
0 1 1 1 1
A|B
ans =
1 1 1 1 1
~B
ans =
1 0 0 0 0
xor(A>B,B<10)
ans =
0 1 1 1 1
三大运算符的优先级
算术运算>关系运算>逻辑
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律