1

MATLAB で構造体の各フィールドにアクセスするのに問題があります。それを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

誰かが私を助けてくれれば、本当に感謝します。

4

1 に答える 1

3

s.(fname)where fnameis 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
于 2013-05-14T07:54:43.453 に答える