Analyse der einzigartigen Funktion, die Ordnung und Wiederholung bewahrt (MATLAB)

Angenommen, ich habe Daten:x = [3,3,1,1,1,2,2,1,1,1,1]
Ich hätte gerne die Ausgabe:
y = [3,1,2,1]
Mit unique () Funktion könnte ich bekommen:
z = [3,1,2]

Aber wie Sie sehen, ich vermisse die "Eins" am Ende. Also habe ich versucht, eine Schleife zu schreiben, aber ich tue nicht, was ich denke, dass es tun sollte. Ich hatte damit gerechnet, einen der wiederholten Werte zu löschen, und durch Schleifen hätte sichergestellt werden müssen, dass nur ein Wert übrig blieb. Die Ausgabe ist jedoch:
x = [3,3,1,1,2,1,1]
Die Schleife
for i=1:length(x)
if x(i)==x(i+1)
x(i)=[];
end;
end;
Gibt es eine Möglichkeit, eine Ausgabe wie in y zu generieren? Wo ist der Fehler in meiner Schleife?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage