Не чувствительное к регистру использование ismember в MATLAB - PullRequest
2 голосов
/ 03 мая 2011

У меня есть две ячейки с первым столбцом в виде строки. В настоящее время я использую ismember, чтобы соответствовать элементам первого столбца в обеих ячейках. Но ismember чувствителен к регистру. Я не могу использовать strcmpi, потому что клетки имеют неравный размер. Не могли бы вы предложить другой подход?

cell1 = { 'AAPL' [2001] ; 'GOOG' [1999] ; 'MSFT' [2010] } ; 

cell2 = { 'AMZN' [2009] ; 'HP' [2011] ; 'CSC' [2005] ; 'Goog' [2010] } ;

Подход без учета регистра:

tf = ismember(cell1(:,1), cell2(:,1)) ; % tf should be now [0; 1; 0]

Спасибо!

1 Ответ

6 голосов
/ 03 мая 2011

Функции lower и upper работают с массивами ячеек строк, поэтому вы можете использовать их для преобразования строк во все строчные и прописные буквы перед вызовом ismember:

>> tf = ismember(lower(cell1(:, 1)), lower(cell2(:, 1)))

tf =

     0
     1    % <-- there's the 1 you want!
     0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...