MATLAB运算

目录

 

算术运算

基本算术运算

1.矩阵的加减运算

2.矩阵的乘法

3.矩阵除法

4.矩阵的乘方

 点运算

关系运算

关系运算符

运算法则

关系运算函数

逻辑运算

运算结果

运算法则

三大运算符的优先级

算术运算

基本算术运算

基本算术运算有+(加)、—(减)、*(乘)、/(右除)、\(左除)、^(乘方)

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^\mathrm{x} ,其中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

三大运算符的优先级

  算术运算>关系运算>逻辑

posted @   morphism  阅读(226)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示