![]() |
如何动态访问结构字段?
我有一个结构,其中包含许多字段,这些字段是不同长度的向量。我想按顺序访问循环中的字段。我尝试了如下的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 我首先使用结构是因为数组在使用不同的字段长度时会遇到麻烦。有更好的替代方法吗? 回答: 尝试使用动态字段引用,在该字段中将字符串放在圆括号中,如在定义[I]东西[/I]的行上所示。 S = struct('A', [1 2], 'B',[3 4 5]); SNames = fieldnames(S); for loopIndex = 1:numel(SNames) stuff = S.(SNames{loopIndex}) end 我同意史蒂夫和亚当的观点。使用细胞。但是,此语法适合其他情况下的人! [url=https://stackoverflow.com/questions/1882035]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 13:25。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.