Tengo dos matrices de cadenas de celdas, y quiero comprobar si contienen las mismas cadenas (no tienen que estar en el mismo orden, ni sabemos si son de las mismas longitudes).MATLAB: comparación de matrices de celdas de la cadena
Por ejemplo:
a = {'2' '4' '1' '3'};
b = {'1' '2' '4' '3'};
o
a = {'2' '4' '1' '3' '5'};
b = {'1' '2' '4' '3'};
principio pensé en strcmp
pero requeriría más de un bucle contenido de la celda y compara contra el otro. También consideré ismember
utilizando algo como:
ismember(a,b) & ismember(b,a)
pero entonces no sé de antemano que son de la misma longitud (caso evidente de la desigualdad). Entonces, ¿cómo haría esta comparación de la manera más eficiente sin escribir demasiados casos de if/else?
Para medir el rendimiento, necesitaría otra solución para comparar, como la sugerencia que hizo mediante un bucle y [STRCMP] (http://www.mathworks.com/access/helpdesk/help/techdoc/ref/strcmp. html). Imagino que el rendimiento sería perfecto, pero si descubres que el uso de [SETXOR] (http://www.mathworks.com/access/helpdesk/help/techdoc/ref/setxor.html) realmente termina siendo un cuello de botella en su procesamiento, puede intentar ver su código fuente ('type setxor' o' edit setxor') y reescribirlo mediante el recorte de alguna comprobación de errores, etc. – gnovice
gracias, creo que veo lo que @Mikhail estaba tratando de hacer. ¿Qué hay del rendimiento? parece que XOR de dos conjuntos es una operación costosa cuando todo lo que necesitaba es un tipo de respuesta verdadero/falso – Dave
Vaya, edité mi comentario y arruiné el pedido ... lo siento – Dave