2012-03-05 12 views
3

私は数字の配列を含むセルを持っています。セルに重複する数字を見つける

重複があればそれを見つけ、重複を含む最短の配列を削除する必要があります。

例:[1 2 3]が最短の配列であるため、c = {[1 2 3] [4 5 6] [1 7 8 9]}では1番目が重複しているため、セルはc = {[4 5 6] [1 7 8 9]}である必要があります。

セルとアレイのサイズは異なります。

答えて

1

これは2つのベクトルに設定賢明な労働組合を行いunion機能、使用して行うことができます。

c = {[1 2 3] [4 5 6] [1 7 8 9]} 
remove=[]; 
for k=1:length(c) 
    for l=k+1:length(c) 
     if length(union(c{k},c{l}))<length(c{k})+length(c{l}) 
      if length(c{k})<=length(c{l}) 
        remove=[remove;k]; 
      else 
        remove=[remove;l]; 
      end 
     end 
    end 
end 
for k=1:length(remove) 
    c(remove)=[]; 
end 
+0

をトリックをしました。組合機能について知りませんでした、ありがとう。 –

関連する問題