【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

例1.6.5

逻辑运算

逻辑运算符:&(与)、|(或)和~(非)。

设参与逻辑运算的是两个标量 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)

例1.6.6

posted @ 2023-01-29 17:52  SplendidCrepuscule  阅读(283)  评论(0编辑  收藏  举报