matlab习题 —— 矩阵的常规运算

2023-05-07 19:12:37 浏览数 (2)

一、题目

设矩阵

A= begin{pmatrix} 4&-2&2\ -3&0&5\ 1&5&3 end{pmatrix}, B= begin{pmatrix} 1&3&4\ -2&0&3\ 2&-1&1 end{pmatrix}
  • (1) 提取矩阵
A

的第一、三行,矩阵

B

的第一、三列;交换矩阵

A

的第一、 二行,矩阵

B

的第一、二列;

  • (2) 删去矩阵
A

的第二行,删去矩阵

B

的第二列;

  • (3) 计算
|A|

|B|

A^{-1}

B^{-1}

A

B

的特征值与特征向量,

A

B

的转置矩阵,将矩阵

A

上下颠倒、矩阵

B

左右颠倒,计算矩阵

A

的每行的最大值与均值、每列的最小值,输出矩阵

B

最大元素与最小元素所在的行与列位置、合并矩阵

A

B

  • (4) 计算
A B

A-B

AB

BA

A^2

A^* B

A/B

二、解答

① 创建两个矩阵:

代码语言:javascript复制
>> A = [4 -2 2;-3 0 5;1 5 3]	%创建矩阵A

A =

     4    -2     2
    -3     0     5
     1     5     3

>> B = [1 3 4;-2 0 3;2 -1 1]	%创建矩阵B

B =

     1     3     4
    -2     0     3
     2    -1     1

题一

1. 提取矩阵A的一、三行
代码语言:javascript复制
>> A([1 3],:)

ans =

     4    -2     2
     1     5     3
2. 提取矩阵B的一、三列
代码语言:javascript复制
>> B(:,[1 3])

ans =

     1     4
    -2     3
     2     1
3. 交换矩阵 A 的第一、 二行
代码语言:javascript复制
>> A([1 2],:) = A([2 1],:)

A =

    -3     0     5
     4    -2     2
     1     5     3
4. 交换矩阵 B 的第一、二列
代码语言:javascript复制
>> B(:,[1 2]) = B(:,[2 1])

B =

     3     1     4
     0    -2     3
    -1     2     1

题二

1. 删去矩阵 A 的第二行
代码语言:javascript复制
>> A([2],:) = []

A =

    -3     0     5
     1     5     3
2. 删去矩阵 B 的第二列
代码语言:javascript复制
>> B(:,[2]) = []

B =

     3     4
     0     3
    -1     1

题三

1. 计算
|A|

|B|
代码语言:javascript复制
>> det(A)

ans =

  -158

>> det(B)

ans =

    35
2. 计算
A^{-1}

B^{-1}
代码语言:javascript复制
>> inv(A)

ans =

    0.1582   -0.1013    0.0633
   -0.0886   -0.0633    0.1646
    0.0949    0.1392    0.0380

>> inv(B)

ans =

    0.0857   -0.2000    0.2571
    0.2286   -0.2000   -0.3143
    0.0571    0.2000    0.1714
3. 计算
A

B

的特征值与特征向量

代码语言:javascript复制
>> [x1,y1] = eig(A)

x1 =

    0.3055    0.8054    0.2410
    0.7795    0.0974    0.5208
   -0.5469    0.5847    0.8189


y1 =

   -4.6842         0         0
         0    5.2102         0
         0         0    6.4740



>> [x2,y2] = eig(B)

x2 =

  列 1 至 2

   0.8210   0.0000i  -0.0719   0.5666i
   0.0181   0.0000i  -0.7330   0.0000i
   0.5706   0.0000i   0.1776 - 0.3240i

  列 3

  -0.0719 - 0.5666i
  -0.7330   0.0000i
   0.1776   0.3240i


y2 =

  列 1 至 2

   3.8461   0.0000i   0.0000   0.0000i
   0.0000   0.0000i  -0.9230   2.8720i
   0.0000   0.0000i   0.0000   0.0000i

  列 3

   0.0000   0.0000i
   0.0000   0.0000i
  -0.9230 - 2.8720i
4. 求
A

B

的转置矩阵

代码语言:javascript复制
>> A.'

ans =

     4    -3     1
    -2     0     5
     2     5     3

>> B.'

ans =

     1    -2     2
     3     0    -1
     4     3     1
5. 将矩阵
A

上下颠倒、矩阵

B

左右颠倒

代码语言:javascript复制
>> flipud(A)

ans =

     1     5     3
    -3     0     5
     4    -2     2

>> fliplr(B)

ans =

     4     3     1
     3     0    -2
     1    -1     2
6. 计算矩阵
A

的每行的最大值与均值、每列的最小值

① 计算
A

的每行的最大值

代码语言:javascript复制
>> max(A,[],2)

ans =

     4
     5
     5
② 计算
A

的每行的均值

代码语言:javascript复制
>> mean(A,2)

ans =

    1.3333
    0.6667
    3.0000
③ 计算
A

的每列的最小值

代码语言:javascript复制
>> min(A,[],1)

ans =

    -3    -2     2
7. 输出矩阵
B

最大元素与最小元素所在的行与列位置

① 输出矩阵
B

最大元素所在的行与列位置

代码语言:javascript复制
>> [x,y] = find(B==max(max(B)))

x =

     1


y =

     3
     
>> for i = 1:length(x)
fprintf('[%d,%d]n',x(i),y(i))
end
[1,3]
① 输出矩阵
B

最小元素所在的行与列位置

代码语言:javascript复制
>> [x,y] = find(B==min(min(B)))

x =

     2


y =

     1

>> for i = 1:length(x)
fprintf('[%d,%d]n',x(i),y(i))
end
[2,1]
8. 合并矩阵
A

B
代码语言:javascript复制
>> [A,B]

ans =

     4    -2     2     1     3     4
    -3     0     5    -2     0     3
     1     5     3     2    -1     1

题四

1. 计算
A B
代码语言:javascript复制
>> A B

ans =

     5     1     6
    -5     0     8
     3     4     4
2. 计算
A-B
代码语言:javascript复制
>> A-B

ans =

     3    -5    -2
    -1     0     2
    -1     6     2
3. 计算
AB
代码语言:javascript复制
>> A*B

ans =

    12    10    12
     7   -14    -7
    -3     0    22
4. 计算
BA
代码语言:javascript复制
>> B*A

ans =

    -1    18    29
    -5    19     5
    12     1     2
5. 计算
A^2
代码语言:javascript复制
>> A*A

ans =

    24     2     4
    -7    31     9
    -8    13    36
6. 计算
A^* B
代码语言:javascript复制
>> inv(A)*det(A)*B

ans =

  -77.0000  -65.0000  -62.0000
  -58.0000   68.0000   60.0000
   17.0000  -39.0000 -132.0000
7. 计算
A/B
代码语言:javascript复制
>> A/B

ans =

         0         0    2.0000
    0.0286    1.6000    0.0857
    1.4000   -0.6000   -0.8000

0 人点赞