Ich habe eine große Matrix mit mehreren Zeilen und einer begrenzten (aber größer als 1) Anzahl der Spalten mit Werten zwischen 0 und 9 und würde gerne einen effizienten Weg finden Identifizieren Sie eindeutige zeilenweise Kombinationen und ihre Indizes, um dann Summen zu bilden (etwas wie eine Pivot-Logik). Hier ist ein Beispiel dafür, was ich zu erreichen versuchen:Matlab finde eindeutige Spalten-Kombinationen in Matrix und jeweiligen Index
a =
1 2 3
2 2 3
3 2 1
1 2 3
3 2 1
uniqueCombs =
1 2 3
2 2 3
3 2 1
numOccurrences =
2
1
2
indizies:
[1;4]
[2]
[3;5]
Von Matrix a
, mag ich zuerst die einzigartigen Kombinationen (zeilenweise) identifizieren, dann zählen die Anzahl Vorkommen/Identifizierung des Zeilenindex der jeweilige Kombination.
Ich habe dies durch die Generierung von Strings mit num2str
und strcat
erreicht, aber diese Methode scheint sehr langsam zu sein. Entlang dieser Gedanken habe ich versucht, einen Weg zu finden, eine neue eindeutige Zahl durch Verketten der Werte horizontal zu bilden, aber Matlab scheint dies nicht zu unterstützen (z. B. von [1;2;3]
Build 123
). Summen funktionieren nicht, da sie die Möglichkeit zur Identifizierung eindeutiger Kombinationen beseitigen würden. Irgendwelche Vorschläge, wie Sie das am besten erreichen können? Vielen Dank!
funktioniert wie ein Charme, vielen Dank! – Benvaulter