将包含1x5双元素的5D单元转换为矩阵

时间:2017-04-07 12:02:23

标签: matlab double cell data-conversion

我有一个dim x {5,5,5,7,4}的单元格,它包含的每个元素都是1x5双。我想将x从cell转换为matrix或double。现在,当我打开x时,它只是说元素是1x5双。怎么做?

2 个答案:

答案 0 :(得分:0)

如果您的所有元素都是1x5 double数组,那么您可以使用cat(结合{:}索引)来连接第一维的所有内容

result = cat(1, x{:})

答案 1 :(得分:0)

我认为这应该适用于eval或feval和cell2mat的组合,它可以为您提供单元格中的矩阵。

你只能在第二低的'上使用cell2mat。单元格的级别,因此在此解决方案中,您必须遍历单元格的5个维度,以便为每个第二最低级别的单元格x {k} {l} {m} {n}提供类似于&#39的名称; M_int2str(k)的_int2str(升)_int2str(米)_int2str(N)'与eval。之后,以您希望的方式连接生成的5 * 5 * 5 * 7矩阵。

另一种 - 可能更容易和更快 - 可能是用cell2mat创建一个细胞金字塔。一个较短的例子:

C={{[1,2,3],[4,5,6]},{[7,8,9],[10,11,12]}};

for k=1:2
    M{k}=cell2mat(C{k});
end

N=cell2mat(M)

结果是

N =
     1     2     3     4     5     6     7     8     9    10    11    12.