分享

矩阵和数组 (3) | Matlab 教程

 小温爱怡宝 2023-07-22 发布于江西

矩阵和数组(3)

  • 6.1矩阵

    • 6.1.11操作矩阵

    • 6.1.12矩阵的可视化

    • 6.1.13多维数组

6.1矩阵

6.1.11操作矩阵

下面是一些用于处理矩阵的函数:

  • diag提取或创建对角线。
  • fliplr从左到右翻转
  • flipud从上到下翻转
  • rot90旋转
  • tril提取下三角形部分
  1. diag函数可以用于提取或创建矩阵的对角线。具体来说,如果输入一个矩阵,diag函数会返回该矩阵的主对角线元素组成的向量。如果输入一个向量,diag函数会创建一个以该向量为主对角线元素的矩阵。例如,假设有一个3x3的矩阵A:

    A = [1 2 3;
         4 5 6;
         7 8 9];

    要提取A的主对角线元素,可以使用以下代码:

    d = diag(A);

    运行结果为:

    d =
      1
      5
      9

    要创建一个以向量v为主对角线元素的矩阵,可以使用以下代码:

    B = diag(v);

    例如,要创建一个3x3的矩阵,其主对角线元素为1、2、3,可以使用以下代码:

    v = [1 2 3];
    B = diag(v);

    运行结果为:

    B = [1 0 0;
         0 2 0;
         0 0 3]
  2. fliplr函数可以用于将矩阵从左到右翻转。具体来说,fliplr函数会将矩阵的每一行从左到右翻转。例如,假设有一个3x3的矩阵A:

    A = [1 2 3;
         4 5 6;
         7 8 9];

    要将A从左到右翻转,可以使用以下代码:

    B = fliplr(A);

    运行结果为:

    B = [3 2 1;
         6 5 4;
         9 8 7]
  3. flipud函数可以用于将矩阵从上到下翻转。具体来说,flipud函数会将矩阵的每一列从上到下翻转。例如,假设有一个3x3的矩阵A:

    A = [1 2 3;
         4 5 6;
         7 8 9];

    要将A从上到下翻转,可以使用以下代码:

    B = flipud(A);

    运行结果为:

    B = [7 8 9;
         4 5 6;
         1 2 3]
  4. rot90函数可以用于将矩阵旋转。具体来说,rot90函数可以将矩阵逆时针旋转90度、180度或270度。例如,假设有一个3x3的矩阵A:

    A = [1 2 3;
         4 5 6;
         7 8 9];

    要将A逆时针旋转90度,可以使用以下代码:

    B = rot90(A);

    运行结果为:

    B = [3 6 9;
         2 5 8;
         1 4 7]

    要将A逆时针旋转180度,可以使用以下代码:

    C = rot90(A, 2);

    运行结果为:

    C = [9 8 7;
         6 5 4;
         3 2 1]

    要将A逆时针旋转270度,可以使用以下代码:

    D = rot90(A, 3);

    运行结果为:

    D = [7 4 1;
         8 5 2;
         9 6 3]
  5. tril函数可以用于提取矩阵的下三角形部分。具体来说,tril函数会将矩阵的上三角形部分置为0,返回矩阵的下三角形部分。例如,假设有一个3x3的矩阵A:

    A = [1 2 3;
         4 5 6;
         7 8 9];

    要提取A的下三角形部分,可以使用以下代码:

    B = tril(A);

    运行结果为:

    B = [1 0 0;
         4 5 0;
         7 8 9]

    注意,tril函数默认提取矩阵的主对角线及以下部分。如果要提取矩阵的次对角线及以下部分,可以使用tril(A, -1)

    A =

      1     2     3
      4     5     6
      7     8     9

    >> tril(A, -1)

    ans =

      0     0     0
      4     0     0
      7     8     0

6.1.12矩阵的可视化

矩阵可以在MATLAB中可视化。这一主题在第9章作了简要讨论,并附有插图。

6.1.13多维数组

MATLAB数组可以有两个以上的维度。例如,假设你创建了一个矩阵a = [1:2; 3:4],可以向其中添加第三个维度a(:,:,2) = [5:6; 7:8]

>> a = [1:23:4]

a =

     1     2
     3     4

>> a(:,:,2) = [5:67:8]

a(:,:,1) =

     1     2
     3     4


a(:,:,2) =

     5     6
     7     8

首先创建了一个2x2的矩阵a,其中第一行为1和2,第二行为3和4。然后,它在第三维上添加了一个新的2x2的矩阵,其中第一行为5和6,第二行为7和8。最后,通过a(:,:,1)a(:,:,2)可以分别访问这两个矩阵。

我们可以把三维数组a想象成一系列的“页面”,每页上都有一个矩阵。a的第三个维度是页数。这类似于具有多个工作表的电子表格:每个工作表包含一个表格(矩阵)。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多