MATLAB中创建高维数组
问题
如何在MATLAB中创建一个三维(更高维度)数组。
解决方案
-
使用下标(循环)创建三维数组
代码
1
2
3
4
5
6
7for i=1:2
for j=1:2
for k=1:2
A(i,j,k)=i+j+k;
end
end
end -
使用低维数组创建三维数组
先输入一个二维数组,然后通过第三维数组与其关系生成第三维数组。
代码
1
2
3
4D2=[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 -
使用创建函数创建三维数组
使用
cat
命令来创建高维数组。Cat命令的格式为C=cat(dim,A1,A2,A3,A4……)
其中dim表示的是创建数组的维度,A1,A2,A3,A4表示的是各维度上的数组。代码
1
2D2=[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 -
利用【repmat】命令以及【reshape】命令在生成高维数组