MATLAB中创建高维数组

问题

如何在MATLAB中创建一个三维(更高维度)数组。

解决方案

  1. 使用下标(循环)创建三维数组

    代码

    1
    2
    3
    4
    5
    6
    7
    for i=1:2
    for j=1:2
    for k=1:2
    A(i,j,k)=i+j+k;
    end
    end
    end
  2. 使用低维数组创建三维数组

    先输入一个二维数组,然后通过第三维数组与其关系生成第三维数组。

    代码

    1
    2
    3
    4
    D2=[1,2,3;4,5,6;7,8,9];
    D3(:,:,1)=D2;
    D3(:,:,2)=2*D2;
    D3(:,:,3)=3*D2;

    查看结果

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    输入:D2 并按【Enter】可以查看输入的二维数组。
    得到:
    D2 =
    1 2 3
    4 5 6
    7 8 9
    输入:D3 并按【Enter】可以查看生成的三维数组。
    D3(:,:,1) =
    1 2 3
    4 5 6
    7 8 9
    D3(:,:,2) =
    2 4 6
    8 10 12
    14 16 18
    D3(:,:,3) =
    3 6 9
    12 15 18
    21 24 27
  3. 使用创建函数创建三维数组

    使用cat命令来创建高维数组。Cat命令的格式为C=cat(dim,A1,A2,A3,A4……)其中dim表示的是创建数组的维度,A1,A2,A3,A4表示的是各维度上的数组。

    代码

    1
    2
    D2=[1,2,3;4,5,6;7,8,9];
    C=cat(3,D2,2D2,3D2);

    程序结果

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    输入:C(:,:,1) 并按【Enter】
    得到:
    ans =
    1 2 3
    4 5 6
    7 8 9
    输入:C(:,:,2) 并按【Enter】
    得到:
    ans =
    2 4 6
    8 10 12
    14 16 18
    输入:C(:,:,3) 并按【Enter】
    得到:
    ans =
    3 6 9
    12 15 18
    21 24 27
  4. 利用【repmat】命令以及【reshape】命令在生成高维数组