将多个细胞放入单个细胞中

时间:2014-05-25 21:48:15

标签: matlab cell

我想将n个单元格放入单个单元格中。例如,如果n = 24,我可以像这样输入所有24个单元格:

P={cell2mat(S.A1),cell2mat(S.A2),cell2mat(S.A3),...,cell2mat(S.A24)};

显然这样打字是愚蠢的。这会是一个更好的方法吗?也许创建一个循环?此外,在某些情况下,我可能会有不同的n,这使得手动方法更具吸引力。有人可以帮忙吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作。

 % some example S
    S.A1 = {[1, 2, 3]};
    S.A2 = {[3, 4, 5]};
    S.A3 = {[5, 6, 7]};



    n = 3; 


    one_cell = arrayfun(@(i) cell2mat(getfield(S, ['A',int2str(i)])), [1:n], 'UniformOutput', 0)


    one_cell{:}
    %
    % gives:
    %
    ans =

     1     2     3


    ans =

     3     4     5


    ans =

     5     6     7