Tengo una gran matriz ordenada alfabéticamente de cadenas (~ 495 mil), con muchos duplicados (que están uno al lado del otro, porque es alfabético).coincidencia de cadenas en una lista alpbetically ordenada (la forma de MATLAB)
Para una cadena de consulta dado, tengo que encontrar todas las cadenas de la lista que coincida con la que me pase en.
He estado usando strcmp(lookUpString,list)
para hacer esto, pero esto es extremadamente lento - Creo que está pasando por cada valor en la lista para comparar, porque no sabe que está ordenado alfabéticamente.
Podría escribir un ciclo while para recorrer la lista y comparar cada cadena usando strcmp
hasta encontrar el bloque de cadenas que quiero (y luego detener), pero me preguntaba si había una forma de "matlab" de hacer esto (es decir, realizar operaciones de comparación lógica en una matriz ordenada).
Gracias por su ayuda!
¿Qué versión de MATLAB estás usando? En el mío, cuando creé una matriz de celdas de 400K cadenas aleatorias de 100 letras y busqué una de ellas usando strcmp, demora 0.024816 segundos. Es un archivo MEX en realidad. Estoy usando 2011A. – user930916