poster
2019-12-10, 16:49
我有一个结构,其中包含许多字段,这些字段是不同长度的向量。我想按顺序访问循环中的字段。我尝试了如下的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 我同意史蒂夫和亚当的观点。使用细胞。但是,此语法适合其他情况下的人!
更多&回答... (https://stackoverflow.com/questions/1882035)
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 我同意史蒂夫和亚当的观点。使用细胞。但是,此语法适合其他情况下的人!
更多&回答... (https://stackoverflow.com/questions/1882035)