[string] Comment rechercher une chaîne dans un tableau de cellules dans MATLAB?



Answers

>> strs = {'HA' 'KU' 'LA' 'MA' 'TATA'};
>> tic; ind=find(ismember(strs,'KU')); toc

Le temps écoulé est de 0.001976 secondes.

>> tic; find(strcmp('KU', strs)); toc

Le temps écoulé est 0.000014 secondes.

SO, clairement strcmp('KU', strs) prend beaucoup moins de temps que ismember(strs,'KU')

Question

Disons que j'ai le tableau de cellules

strs = {'HA' 'KU' 'LA' 'MA' 'TATA'}

Que dois-je faire si je veux trouver l'index de 'KU' ?




Les fonctions strcmp et strcmpi sont le moyen le plus direct de le faire. Ils recherchent dans les tableaux.

strs = {'HA' 'KU' 'LA' 'MA' 'TATA'}
ix = find(strcmp(strs, 'KU'))



as-tu essayé

indices = Find(strs, 'KU')

voir le link

alternativement,

indices = strfind(strs, 'KU');

devrait également fonctionner si je ne me trompe pas.




Je vois que tout le monde a manqué la faille la plus importante de votre code:

strs = {'HA' 'KU' 'LA' 'MA' 'TATA'}

devrait être:

strs = {'HA' 'KU' 'NA' 'MA' 'TATA'} 

ou

strs = {'HAKUNA' 'MATATA'}

Maintenant, si vous persistez à utiliser

ind=find(ismember(strs,'KU'))

Vous n'aurez aucun souci :).




Related