单维单元阵列转换为二维单元阵列

时间:2015-10-19 12:38:53

标签: arrays matlab matrix cell

我有一个大小为1 * 15的单元格数组。每个单元阵列具有不同的矩阵大小,并且是从大矩阵生成的。我知道必须将单元阵列重新整形为3 * 5才能生成大矩阵。我希望能够将1 * 5单元阵列重新整形为3 * 5的矩阵,然后生成一个单个大矩阵,其元素来自3 * 5大小的单元矩阵。

更多细节:我的原始矩阵有14451 * 24557大小。我使用“mat2tiles”命令将其截断为6000 * 6000的较小块。然后,我用它生成了一个1 * 15的单元阵列,用“parfor”进行某些操作。现在,我想重塑回原始矩阵大小。有什么想法吗?

2 个答案:

答案 0 :(得分:4)

嗯,你知道些什么。 reshape实际上适用于细胞。奇怪的是,文档没有说明,但它的工作原理如下:

a=cell(15,1);
reshape(a,5,3)
ans = 
    []    []    []
    []    []    []
    []    []    []
    []    []    []
    []    []    []

答案 1 :(得分:-1)

这是你正在寻找的吗?

a(1).test = zeros(1,15)
reshape(a(1).test,3,5)

那是一个...... 更简单:

  a(2).test = zeros(1,15)
  [reshape(a(1).test,3,5) reshape(a(2).test,3,5)]

与Adriaan的评论有关... 以上是针对细胞阵列的结构的可比性

a=1:15;
b=16:30;
a =num2cell(a);
b =num2cell(b);
reshape([a b],5,6)