2014-02-27 119 views
0

我想找出具有以下條件的行號。與多個條件的strmatch

編輯1例如

  • 列1 = 'A'
  • 列2 = 'B'
  • 列3 = 'C'

陣列:

x = { 'A' 'B' 'E'; 
     'A' 'B' 'C'; 
     'A' 'E' 'C'; 
     'B' 'F' 'E'} 

我想根據以下條件找出行號(第2行)。

  • 列1 = 'A'
  • 列2 = 'B'
  • 列3 = 'C'

如何使用strmatch或其它功能來找到它在MATLAB ?

+1

你可以發佈一個最小例? – chappjc

+0

我已經添加了一個例子。 – user2230101

+0

似乎不是上述問題的重複。也許答案有點相關,但問題是完全不同的,這個問題有一個更合適的答案。 –

回答

0

在一般情況下:

rows = find(strcmp(x(:,1),'A') & strcmp(x(:,2),'B') & strcmp(x(:,3),'C')); 

如果你總是有整整三列,如果每個單元總是包含一個字母,您也可以使用:

rows = find(all(bsxfun(@eq, cell2mat(x), 'ABC'),2)); 
+0

(1)我的數據總是至少有3列,但(2)並非所有單元格只包含單個字母。 – user2230101

+0

@ user2230101請參閱編輯 –