3

MATLAB に構造体の配列があり、それらはすべて同じ構造 (同じフィールド) を持っています。構造体配列全体から特定のフィールドのすべての値を含む配列をコンパイルする簡単な方法が欲しいです。ループを使わずにこれを行う方法はありますか?

前もって感謝します

4

1 に答える 1

3

配列に名前が付けられaていて、フィールドがあるとしますb。アクセスすると、の各要素のフィールドa.bの値のリストが表示されます。それをリストに変換したい場合は、リストを でラップするだけです。あれは:ba[]

>> 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
于 2012-04-03T21:01:11.983 に答える