2011-12-25 13 views
6

Matlabの構造体配列の各要素から特定のフィールドを抽出するにはどうすればよいですか?構造体配列をスライスする方法は?

>> clear x 
>> x(1).a = 6; 
>> x(2).a = 7; 

私は6と7のいずれもx(:).ax.aは私がやりたい含む配列をしたいと思います。

>> x(:).a 

ans =  

    6 


ans = 

    7 

答えて

9

問題ありませんが - ちょうど使用:

arr = [x.a]; 

それはあなたが必要とするすべての値をCONCATます。あなたがより複雑なデータを持っている場合は 、あなたは巻き毛ブレーサー使用することができます、あなたが必要とする多次元配列の場合

b(1).x = 'John'; 
b(2).x = 'Doe'; 
arr = {b.x}; 
0

悲しいことに、私はほとんど幸いですが、MATLABにはあなたがしたいことをする良い方法がないと確信しています。新しい配列を構築するためにforループを使用するか、データ構造を元に戻して再設計する必要があります。例えば、array-of-structsではなく、struct-of-arrayを使用することができます。

0

reshape([x.a], size(x)) 
関連する問題