Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我有一个结构,其中包含许多字段,这些字段是不同长度的向量。我想按顺序访问循环中的字段。我尝试了如下的getfield,但是MATLAB不喜欢这样。我怎样才能做到这一点?
S = struct('A', [1 2], 'B',[3 4 5]); SNames = fieldnames(S); for loopIndex = 1:2 field = getfield(S, SNames(loopIndex)); %do stuff w/ field end ??? Index exceeds matrix dimensions 我首先使用结构是因为数组在使用不同的字段长度时会遇到麻烦。有更好的替代方法吗? 回答: 尝试使用动态字段引用,在该字段中将字符串放在圆括号中,如在定义东西的行上所示。 S = struct('A', [1 2], 'B',[3 4 5]); SNames = fieldnames(S); for loopIndex = 1:numel(SNames) stuff = S.(SNames{loopIndex}) end 我同意史蒂夫和亚当的观点。使用细胞。但是,此语法适合其他情况下的人! 更多&回答... |
![]() |
![]() |