Matlabの構造体配列の各要素から特定のフィールドを抽出するにはどうすればよいですか?構造体配列をスライスする方法は?
>> clear x
>> x(1).a = 6;
>> x(2).a = 7;
私は6と7のいずれもx(:).a
もx.a
は私がやりたい含む配列をしたいと思います。
>> x(:).a
ans =
6
ans =
7
Matlabの構造体配列の各要素から特定のフィールドを抽出するにはどうすればよいですか?構造体配列をスライスする方法は?
>> clear x
>> x(1).a = 6;
>> x(2).a = 7;
私は6と7のいずれもx(:).a
もx.a
は私がやりたい含む配列をしたいと思います。
>> x(:).a
ans =
6
ans =
7
問題ありませんが - ちょうど使用:
arr = [x.a];
それはあなたが必要とするすべての値をCONCATます。あなたがより複雑なデータを持っている場合は 、あなたは巻き毛ブレーサー使用することができます、あなたが必要とする多次元配列の場合
b(1).x = 'John';
b(2).x = 'Doe';
arr = {b.x};
悲しいことに、私はほとんど幸いですが、MATLABにはあなたがしたいことをする良い方法がないと確信しています。新しい配列を構築するためにforループを使用するか、データ構造を元に戻して再設計する必要があります。例えば、array-of-structsではなく、struct-of-arrayを使用することができます。
を
reshape([x.a], size(x))