2016-07-22 1 views
3

現在、イメージ名をリストする2つの単一フィールドMatlab構造体があります。非=ブルートフォース方法のがあります2つの単一フィールドMatlab構造体で共用体を実行する方法

ab(1) = 'aa.jpg' 
ab(2) = 'bb.jpg' 
ab(3) = 'cc.jpg' 

a(1).img = 'aa.jpg' 
a(2).img = 'bb.jpg' 

b(1).img = 'bb.jpg' 
b(2).img = 'cc.jpg' 

すなわちABは値(複数可)を持っているため、私は希望 - 私は重複なしで単一構造体の中にそれらを結合したいと思いますこれをする?

答えて

3

コンマで区切られたリストを使用して各構造体の値を連結し、uniqueを使用して一意の値を取得できます。次に、これをstruct関数に渡すと、値を含むstructsの配列が作成されます。

S = struct('img', unique({a.img, b.img}, 'stable')) 

あなたが実際に構造体を必要とするだけのユニークな値のセル配列をしたくない場合は、structへの最後の呼び出しを排除することができます。

unique({a.img, b.img}, 'stable') 
+0

'struct( 'img'、unique({a.img、b.img}、 'stable'))'? –

+0

@ LuisMendoそれではうまくいくはずです。おそらくビットクリーナー – Suever

+0

私は実際に使ったことがあります: 'unique({a(:) img、b(:) img})' – user1245262

関連する問題