我试图弄清楚如何将大量数据导入到特定顺序的3D矩阵中。我已经问了两个问题,但我还没有得到可靠的答案而且还投了票。从那时起,我完成了一些工作,并能够使用reshape
函数将数据导入3D矩阵。这不是拍摄实际问题,而是模拟实际问题。
k=1:27 % create a array of 27 data
r=reshape(k,[3,3,3]) % convert the array into 3 x 3 x 3 matrix,
矩阵的第一页和第二页的结果是,数据沿列放置,但我想将它们放在行上,transpose
函数不适用于ND数组,我试过使用permute
但我没有得到所需的结果,一个解决方案将对每个页面执行transpose
,但这会将3D矩阵分解为许多2D矩阵。
r(:,:,1) =
1 4 7
2 5 8
3 6 9
r(:,:,2) =
10 13 16
11 14 17
12 15 18
r(:,:,1) =
1 2 3
4 5 6
7 8 9
Link to the actual problem is,
由于
答案 0 :(得分:2)
这是你想要的吗?
result = permute(r, [2 1 3]);
这会排除前两个维度。对于您的示例r
,
>> k = 1:27;
>> r = reshape(k, [3,3,3]);
>> result = permute(r, [2 1 3]);
>> result
result(:,:,1) =
1 2 3
4 5 6
7 8 9
result(:,:,2) =
10 11 12
13 14 15
16 17 18
result(:,:,3) =
19 20 21
22 23 24
25 26 27