在2d单元阵列中转换3d单元阵列

时间:2015-11-20 11:44:45

标签: matlab multidimensional-array cell-array

我将一个结构 S (包含13个字段和96行,一些字段由数字组成,其他字符串组成)转换为单元格数组:

myCell= struct2cell(S);

所以,我获得了一个3d单元格数组 myCell 13x1x96,我想在一个2d单元格数组96x13中进行转换。欢迎任何建议!

1 个答案:

答案 0 :(得分:1)

比建议的更通用的解决方案将采用permute函数:

  

B = permute(A,order)重新排列A的维度,使其符合向量order指定的顺序。

     

...

     

permuteipermute是多维数组的转置(.')的推广。

在您的情况下,运行new_Cell = permute(myCell,[3,1,2])命令会生成13x1x96 96x13。如您所见,permute删除了尾随的单例维度(类似于squeeze)。

(在MATLAB 2015b上测试)