2014-02-27 7 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 См. Редактирование –

Смежные вопросы