Ich habe einen großen Vektor, der monoton steigende Daten oder ein Duplikat, sucht so etwas wie dies enthält:Wie Elemente in einem Array extrahiert werden, die mehrere Einträge enthalten?
data = [0 1.1 2.2 3.3 4.4 4.4 4.4 4.4 5.5 6.6 6.6 6.6 7.7];
In diesem Datensatz, ich bin interessiert an den Duplikat Einträge (in diesem Fall 4.4
und 6.6
). Ich habe eine sorta klobig Lösung, um diese Werte zu extrahieren, aber ich fühle mich wie MATLAB eine Einzeiler Lösung um ein Ergebnis zu extrahieren wie
result = [4.4 6.6];
Mit 'find' unnötig ist.Logische Indizierung ist gut genug: 'unique (Daten (diff (Daten) == 0))' – rayryeng
Nizza. Wenn Sie nun das '== 0' entfernen und durch' ~ diff (data) 'ersetzen, hätten Sie in seiner Antwort das, was thewaywewalk hat. – rayryeng
@rayryeng. In diesem Fall bevorzuge ich das == 0, weil es für den Leser klarer ist. Ich würde auch vorschlagen, nicht alles in eine Zeile zu schreiben, wie ich es bei der Antwort getan habe, weil es dadurch weniger lesbar ist. –