0

私は行列A =を持っています

'30'  'X' '@NA'
'15'  'Y' [231.001] 
'00'  'Y' [21.110]
'20'  'W' '@NA'
'55'  'X' [9.001]
'10'  'X' [11.211]


>>whos A
  Name        Size              Bytes  Class    Attributes

  aaa         6x3               226    cell     

列 1 に '10'、'15'、'20'...'55' 以外、または列 1 に '@NA' 以外がある場合、マトリックス A の行全体を削除する新しいマトリックス B を取得するにはどうすればよいですか?列 3 、および次の修飾された行を MERGE します。

A を例にとると、列 3 に「@NA」があるため、行 1 と 4 を削除する必要があります。列 1 に「00」があるため、行 3 も削除する必要があります。

マトリックス B は、

>>B

B = 
    '15'  'Y' [231.001] 
    '55'  'X' [9.001]
    '10'  'X' [11.211]

B は 3*3 セル行列です。

どんな提案でも大歓迎です!

4

2 に答える 2

2

@paddyの答えのわずかなバリエーション:

idx = ismember(A(:,1), num2str((10:5:55)')) & ~strcmp(A(:,3),'@NA');
B = A(idx,:);
于 2012-08-08T01:45:39.380 に答える