Digamos que eu tenha a matriz de células
strs = {'HA' 'KU' 'LA' 'MA' 'TATA'}
O que devo fazer se quiser encontrar o índice de 'KU'
?
string
matlab
cell-array
Benjamin
fonte
fonte
Respostas:
Acho que o código a seguir pode resolver o problema:
Isso retorna
fonte
O tempo decorrido é 0,001976 segundos.
O tempo decorrido é 0,000014 segundos.
ASSIM, claramente
strcmp('KU', strs)
leva muito menos tempo do queismember(strs,'KU')
fonte
Desde 2011a, a forma recomendada é:
Se você quiser obter o índice inteiro (que geralmente não precisa), pode usar:
strfind
está obsoleto, então tente não usá-lo.fonte
Vejo que todos não perceberam a falha mais importante em seu código:
deveria estar:
ou
Agora, se você continuar usando
Você não terá que se preocupar :).
fonte
Outras respostas são provavelmente mais simples para este caso, mas para completar, pensei em adicionar o uso de cellfun com uma função anônima
que tem a vantagem de que você pode facilmente torná-lo insensível a maiúsculas e minúsculas ou usá-lo nos casos em que você tem uma matriz de células de estruturas:
fonte
Código mais curto:
Mas ele retorna apenas a primeira posição em
strs
. Se o elemento não for encontrado, entãoind=0
.fonte
As funções strcmp e strcmpi são a maneira mais direta de fazer isso. Eles procuram por matrizes.
fonte
você tentou
veja o link
alternativamente,
também deve funcionar se não me engano.
fonte