【发布时间】:2014-08-05 19:07:11
【问题描述】:
如何将 2d 数组重塑为 3d 数组,最后一列用作页面? 在 array2d 中找到的所有数据都应该在页面中
示例:
array2d=[7,.5,12; ...
1,1,1; ...
1,1,1; ...
4,2,4; ...
2,2,2; ...
2,2,2; ...
3,3,3; ...
3,3,3; ...
3,3,3];
数组中的第一页是 7,.5,12; 1,1,1; 1,1,1;
数组中的第二页是 4,2,4; 2,2,2; 2,2,2;
数组中的第三页是 3,3,3; 3,3,3; 3,3,3;
这是一个 9x3 数组,我怎样才能让它成为一个 9x3x? (不确定这个数字应该是多少,所以我放了一个问号作为占位符) 多维数组?
我想要得到的是 所有的都在一个维度/页面上,所有的两个都在另一个维度/页面上等等...... -
我试过 reshape(array2d,[9,3,1]) 还是 9x3
【问题讨论】:
-
你需要使用
repmat或者给出一个简单的小例子 -
@natan 我想要得到的是让所有的都在一个维度/页面上,所有两个都将是另一个维度/页面等...... -
-
我还是不明白,如果你写
a(:,:,1)=[1 2 ; 1 2]a(:,:,2)会是什么样子? -
@natan:OP 在更大的 2D 矩阵中堆叠了 2D 矩阵。这些 2D 矩阵中的每一个都包含一个数字,因此有一个全为 1 的 3 x 3 矩阵,一个全为 2 的 3 x 3 矩阵,等等。OP 希望采用这些矩阵中的每一个并创建一个堆叠的 3D 矩阵,其中每个切片仅对应于仅此数字的 2D 矩阵。因此,
out(:,:,1) = ones(3,3), out(:,:,2) = 2*ones(3,3)...等,给定上面的例子。
标签: arrays matlab multidimensional-array octave