Verwendung Wie erstelle ich alle k-combinations with repetitions eines gegebenen Satzes mit MATLAB (auch k-multicombinations oder multisubsets genannt)?alle Kombinationen mit Wiederholung generieren MATLAB
Dies ist ähnlich zu dem Kartesischen Produkt, sondern zwei Reihen, die nur durch ihre Sortierung unterscheiden sollen das gleiche betrachtet werden (zum Beispiel der Vektoren [1,1,2]=~=[1,2,1]
Betracht gezogen werden, um das gleiches sein), so dass das kartesische Produkt zu erzeugen und dann unique(sort(cartesianProduct,2),'rows')
Anwendung ergeben sollte die gleichen Ergebnisse.
Beispiel: Der Aufruf nmultichoosek(1:n,k)
die folgende Matrix erzeugen soll:
nmultichoosek(1:3,3)
ans =
1 1 1
1 1 2
1 1 3
1 2 2
1 2 3
1 3 3
2 2 2
2 2 3
2 3 3
3 3 3
Ver schnell und speichereffizient! Gute Frage und Antwort –
Brauchen Sie wirklich diese "Umgestaltung"? Ist nicht 'Kämme = Werte (Kämme);' genug? –
@LuisMendo: Ich habe es gerade gemacht, also wird für 'k = 1' ein Spaltenvektor zurückgegeben. Sonst könnte es weggelassen werden. – knedlsepp