Ho due array di celle di stringhe e voglio verificare se contengono le stesse stringhe (non devono essere nello stesso ordine, né sappiamo se sono di le stesse lunghezze).MATLAB: confronto di array di celle di stringa
Ad esempio:
a = {'2' '4' '1' '3'};
b = {'1' '2' '4' '3'};
o
a = {'2' '4' '1' '3' '5'};
b = {'1' '2' '4' '3'};
primo momento ho pensato di strcmp
ma richiederebbe loop oltre un contenuto delle celle e confrontare con l'altro. Ho anche considerato ismember
usando qualcosa come:
ismember(a,b) & ismember(b,a)
ma poi non so in anticipo che sono della stessa lunghezza (caso evidente di disuguale). Quindi, come eseguiresti questo confronto nel modo più efficiente senza scrivere troppi casi di se/else.
Per valutare le prestazioni, è necessaria un'altra soluzione da confrontare, come il suggerimento che hai fatto usando un ciclo e [STRCMP] (http://www.mathworks.com/access/helpdesk/help/techdoc/ref/strcmp. html). Immagino che le prestazioni siano perfette, ma se scopri che l'uso di [SETXOR] (http://www.mathworks.com/access/helpdesk/help/techdoc/ref/setxor.html) finisce davvero per essere un collo di bottiglia nel processo, puoi provare a guardare il suo codice sorgente ('tipo setxor' o' edit setxor') e riscriverlo tagliando alcuni errori di controllo, ecc. – gnovice
grazie, penso di vedere cosa stava cercando @Mikhail fare. Che dire delle prestazioni? sembra che XOR di due set sia un'operazione costosa quando tutto ciò di cui avevo bisogno è un tipo di risposta vero/falso – Dave
oops, ho modificato il mio commento e ho incasinato l'ordine .. scusa – Dave