【问题标题】:Extracting cells from struct in Matlab?从Matlab中的结构中提取单元格?
【发布时间】:2015-06-27 02:22:28
【问题描述】:

考虑 Matlab 中的以下代码

for h=1:2
    B=randn(3,2);
    C=randn(3,2);
    A={B C}; 
    baseA_.A=A;
    eval(['baseA.A' num2str(h) '= baseA_;'])
end

clearvars -except baseA

现在在循环的每次迭代 h 中,我想提取结构 Ah 内的 1x2 单元格。

我试过了

for h=1:2
    indA=sprintf('A%d', h); 
    Acell = struct2cell(baseA.(indA));

end

Acell 是一个 1x1 单元格,其中包含一个 1x2 单元格。我想直接Acell 等于1x2 单元格。有什么建议吗?

【问题讨论】:

    标签: matlab


    【解决方案1】:

    你可以修改第二个循环如下:

    for h=1:2
        indA=sprintf('A%d', h); 
        Acell = baseA.(indA).A;
    
    end
    

    在每次迭代中,Acell 都会被覆盖,但我假设您只发布了循环代码的一部分。

    此外,通过使用您在第二个循环中使用的相同方法,您可以避免使用 eval 将该行代码替换为:

    %eval(['baseA.A' num2str(h) '= baseA_;'])
    indA=sprintf('A%d', h)
    baseA.(indA)=baseA_;
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-31
      • 1970-01-01
      • 1970-01-01
      • 2022-07-08
      • 2011-12-12
      • 2012-12-01
      相关资源
      最近更新 更多