MATLAB に構造体の配列があり、それらはすべて同じ構造 (同じフィールド) を持っています。構造体配列全体から特定のフィールドのすべての値を含む配列をコンパイルする簡単な方法が欲しいです。ループを使わずにこれを行う方法はありますか?
前もって感謝します
配列に名前が付けられa
ていて、フィールドがあるとしますb
。アクセスすると、の各要素のフィールドa.b
の値のリストが表示されます。それをリストに変換したい場合は、リストを でラップするだけです。あれは:b
a
[]
>> a = [struct('a', 1, 'b', 10, 'c', 100), struct('a', 2, 'b', 20, 'c', 200)];
>> a
a =
1x2 struct array with fields:
a
b
c
>> a.b
ans =
10
ans =
20
>> [a.b]
ans =
10 20
>> [a.c]
ans =
100 200
構造体の行列がある場合は、上記の方法を使用してベクトルを取得し、次を使用して行列に再形成できます。
>> reshape([a.b], size(a))
ans =
10 111
20 222