基于struct name访问struct字段

时间:2013-05-14 07:42:01

标签: matlab struct

我在MATLAB中访问struct的每个字段时遇到问题。我试图将它转换为Cell然而,它给我错误:( 如何通过2个循环访问每个字段? 我写了以下代码:

a=load(goalMFile);
struct_name=fieldnames(a);
struct_cell=struct2cell(a);
cellsz = cellfun(@size,struct_cell,'uni',false);
ans=cellsz{:};
row=ans(1);
col=ans(2);
for counter1=1:row
for counter2=1:col
a.struct_name{(counter1-1)*counter2+counter2} % the error is Here
end

end

如果有人能帮助我,我将非常感激。

1 个答案:

答案 0 :(得分:3)

您可以使用s.(fname)动态访问结构,其中fname是char变量。请注意( )周围的fname

一个例子将澄清:

% Example structure
s.A = 10;
s.B = 20;

% Retrieve fieldnames
fnames = fieldnames(s);

% Loop with numeric index
for ii = 1:numel(fnames)
    s.(fnames{ii})
end

% ...or loop by fieldname directly
for f = fnames'
    s.(f{:})
end
相关问题