2012-04-03 12 views
3

私は構造体の配列がMATLAB内にあり、それらはすべて同じ構造(同じフィールド)を持ちます。 私は、構造体配列全体から特定のフィールドのすべての値を含む配列を簡単にコンパイルしたいと思います。ループを使用せずにこれを行う方法はありますか?事前MATLAB構造体配列から変数を問い合わせる

答えて

3

おかげで、あなたの配列が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 
+0

ターン「ベクトル/行列」へ多分? – yuk