Digamos que tengo la matriz de celdas
strs = {'HA' 'KU' 'LA' 'MA' 'TATA'}
¿Qué debo hacer si quiero encontrar el índice de 'KU'
?
string
matlab
cell-array
Benjamín
fuente
fuente
Respuestas:
Supongo que el siguiente código podría hacer el truco:
Esto vuelve
fuente
El tiempo transcurrido es 0.001976 segundos.
El tiempo transcurrido es de 0,000014 segundos.
Entonces, claramente
strcmp('KU', strs)
toma mucho menos tiempo queismember(strs,'KU')
fuente
Desde 2011a, la forma recomendada es:
Si desea obtener el índice de enteros (que a menudo no necesita), puede usar:
strfind
está en desuso, así que trate de no usarlo.fuente
Veo que todos pasaron por alto la falla más importante en su código:
debiera ser:
o
Ahora bien, si sigues usando
No tendrás preocupaciones :).
fuente
Otras respuestas probablemente sean más simples para este caso, pero para completar, pensé que agregaría el uso de cellfun con una función anónima
lo cual tiene la ventaja de que puede hacer que no distinga entre mayúsculas y minúsculas o usarlo en los casos en que tenga una matriz de estructuras de celdas:
fuente
Código más corto:
Pero solo devuelve la primera posición en
strs
. Si no se encuentra el elemento, entoncesind=0
.fuente
Las funciones strcmp y strcmpi son la forma más directa de hacer esto. Buscan a través de matrices.
fuente
has probado
ver enlace
alternativamente,
también debería funcionar si no me equivoco.
fuente