【问题标题】:iterative definition of object properties对象属性的迭代定义
【发布时间】:2011-09-18 04:18:39
【问题描述】:

假设您有一个对象A,其属性为B 你想定义一些参数 A.B (比如 A.B.n1 , A.B.n2 , .... ),因为这些参数很多,您希望迭代地执行此操作。我遇到的问题是 每当我尝试以迭代方式进行时:

for j=1:4
    S=strcat('n',int2str(j));
    A.B.S=j;
end

我只定义A.B.S=4,不创建 A.B.n1=1 , A.B.n2=2,...,A.B.n4=4.

如何让 MATLAB 理解我希望 S 成为一个变量?

【问题讨论】:

    标签: matlab object struct


    【解决方案1】:

    您想使用dynamic field names 访问结构数据:

    S = strtrim(cellstr(num2str((1:10)','n%d')));   %#'
    for i=1:numel(S)
        A.B.(S{i}) = i;
    end
    

    结果

    >> A.B
    ans = 
         n1: 1
         n2: 2
         n3: 3
         n4: 4
         n5: 5
         n6: 6
         n7: 7
         n8: 8
         n9: 9
        n10: 10
    

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 1970-01-01
      • 2016-02-26
      • 2010-10-03
      • 2013-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-14
      相关资源
      最近更新 更多