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'
?
string
matlab
cell-array
Benjamin
la source
la source
Réponses:
Je suppose que le code suivant pourrait faire l'affaire:
Cela renvoie
la source
Le temps écoulé est de 0,001976 secondes.
Le temps écoulé est de 0,000014 seconde.
SO,
strcmp('KU', strs)
prend clairement beaucoup moins de temps queismember(strs,'KU')
la source
Depuis 2011a, la méthode recommandée est:
Si vous souhaitez obtenir l'index entier (dont vous n'avez souvent pas besoin), vous pouvez utiliser:
strfind
est obsolète, alors essayez de ne pas l'utiliser.la source
Je vois que tout le monde a manqué la faille la plus importante de votre code:
devrait être:
ou
Maintenant, si vous vous en tenez à utiliser
Vous n'aurez aucun souci :).
la source
D'autres réponses sont probablement plus simples pour ce cas, mais pour être complet, j'ai pensé ajouter l'utilisation de cellfun avec une fonction anonyme
ce qui a l'avantage de pouvoir facilement le rendre insensible à la casse ou de l'utiliser dans les cas où vous avez un tableau de cellules de structures:
la source
Code le plus court:
Mais il ne renvoie que la première position dans
strs
. Si l'élément n'est pas trouvé, alorsind=0
.la source
Les fonctions strcmp et strcmpi sont le moyen le plus direct de le faire. Ils recherchent dans les tableaux.
la source
as-tu essayé
voir le lien
alternativement,
devrait également fonctionner si je ne me trompe pas.
la source