2016-04-05 7 views
0

Ich habe eine n-by-k-Matrix in Matlab. Ich muss ein Element aus jeder Spalte nehmen, um einen Vektor der Länge k ohne wiederholte Elemente zu konstruieren, wenn ein solcher Vektor existiert. Ich bin mir nicht sicher, wie ich diesen Vektor finden kann.Unique Vektor aus einem Element aus jeder Spalte einer Matrix in Matlab

Beispiel 1: Eine Matrix X = [1,1,1; 2,2,1; 3,1,1] hat einen Vektor mit eindeutigen Elementen v = [3,2,1], in dem 3 ausgewählt ist Von der ersten Spalte wird 2 aus der zweiten Spalte und 1 aus der dritten Spalte ausgewählt.

Beispiel 2: Eine Matrix Y = [1,1,2; 1,1,3] hat keinen solchen Vektor, denn wenn ich ein Element aus der ersten Spalte und ein Element aus der zweiten Spalte auswählen würde, Ich hätte sicher zwei Eins. Daher würde ich keine einzigartigen Elemente in meinem Vektor haben.

Antwort

0

Sie könnten eine rekursive Funktion schreiben, die über den nächsten Vektor iteriert und prüft, ob ein neues Element verfügbar ist. Wenn ja, gehen Sie zum nächsten Vektor (als Teil der ursprünglichen Matrix), wenn keine Rückkehr erfolgt.

Als Ausgangspunkt für das Schreiben rekursiver Matlab-Funktionen überprüfen Sie: Recursive Function in matlab