MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   如何动态访问结构字段? (https://www.labfans.com/bbs/showthread.php?t=22975)

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 我首先使用结构是因为数组在使用不同的字段长度时会遇到麻烦。有更好的替代方法吗?


回答:
尝试使用动态字段引用,在该字段中将字符串放在圆括号中,如在定义[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.