matlabに読み込む必要のあるテキストファイルがあります。構造を使用して、MatlabにjavaLinkedHashMapのようなものを実装したいと思います。私のテキストファイルはこんな感じです
3-1 33.33 37.58
3-1 66.67 20.47
3-2 33.33 41.64
3-2 66.67 24.42
ファイル全体を配列に読み込みます[a,x,y]
。ここで、aは3-1と3-2を含むセル配列です。
フィールド名をa(1)またはa(2)にする構造が必要ですが、残念ながらmatlabでエラーが発生します。その理由は、たとえばa(1)がすでに構造体フィールド名であるかどうかを確認する必要があるためです。値を前の値に連結します。そうでない場合は、尊重された値で新しいフィールド名を作成します。コードは次のとおりです。
[a,x,y]=textread('mytxt.txt', '%q%f%f','commentstyle','matlab');
s.a(1)=[x(1),y(1)];
for j=2:length(a)
if isfield(s,a(1))==0
s.a(j)=[x(j),y(j)];
else
temp = s.a(j);
C = concat(1,temp,[x(j),y(j)];
s.a(j) = C
end
end