2016-04-15 12 views
2

Nehmen wir an, ich habe eine N x 1 Zelle (lassen Sie uns N = 5 setzen), wobei jedes Element eine Zeichenfolge ist, die wiederholt werden kann. So wäre ein Beispiel sein:Wie man eine Zelle von Strings mit eindeutigen Zahlen aufzählt?

x = {'x', 'b', 'c', 'x', 'd'} 

Ich möchte die eindeutige Zeichenfolgen bestimmen und erhalten einen N x 1 Kennung Vektor, der für diesen Fall ist:

y = [1, 2, 3, 1, 4] 

Keine alphabetische Ordnung erforderlich ist, ich nur wollen jede Integer in y einer eindeutigen Zeichenfolge in x entsprechen. Gibt es einen einfachen Weg, dies in MATLAB zu tun?

Vielen Dank für jede Hilfe,

+0

So ziemlich das gleiche wie das Duplikat. Sie können den Plotteil jedoch ignorieren. – rayryeng

Antwort

4

Ja: die dritte Ausgabe von unique mit der Flagge 'stable' Eingabe verwenden:

[~, ~, result] = unique(x, 'stable'); 
+0

Danke! Ich werde so schnell wie möglich akzeptieren. – jeff

+0

Lieber Luis, ich habe noch eine Frage. Wie kann ich wissen, welche ID welchem ​​Eintrag in x entspricht? Wenn ich also von der numerischen ID auf den ursprünglichen Zeichenfolgenwert zugreifen möchte, was soll ich tun? – jeff

+0

@HalilPazarlama Wenn ich es richtig verstehe, benutze 'result' einfach als Index in' x'. So gibt zum Beispiel 'x {result (2)}' die ursprüngliche zweite Zeichenkette zurück. Sie können aber auch 'x {2}' verwenden –

Verwandte Themen