进入结构领域的基于结构名(access to struct fields based on stru

2019-09-03 01:56发布

我有问题访问MATLAB结构的各个领域。 我试图将其转换然而细胞时,它给我的错误:(我如何访问每个字段与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

我会很感激,如果有人可以帮助我。

Answer 1:

可以用动态访问的结构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


文章来源: access to struct fields based on struct name
标签: matlab struct