【问题标题】:Placing multiple cells into a single cell将多个单元格放入一个单元格中
【发布时间】:2014-05-25 21:48:14
【问题描述】:

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

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

显然这样输入是愚蠢的。有什么更好的方法来做到这一点?也许创建一个循环?此外,在某些情况下,我可能有不同的 n,这使得手动方法更加不吸引人。有人可以帮忙吗?

谢谢!

【问题讨论】:

  • 像A1 到A24 这样的连续变量名称通常是个坏主意,可能用单个单元格S.A 替换所有24 个变量是最简单的解决方案。
  • 为什么这通常是个坏主意?缺乏灵活性?

标签: matlab cell


【解决方案1】:

你可以这样做。

 % 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

【讨论】:

  • 谢谢你,马辛。这很棒。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多