2016-09-24 4 views
-4

Ich möchte einen String in ein kategorisches Array transformieren, in dem die Kategorien die Zeichen sind.Verwandle 'abcd' in {'a' 'b' 'c' 'd'} in Matlab

+0

Was MATLAB-Version verwenden Sie? Vor R2016b, das letzte Woche herauskam, waren Arrays mit Zeichenfolgen/Zeichen sowieso vom Typ "char". – Adriaan

+0

@Adriaan Wahr. Die Frage wurde schlecht gestellt, als ich jetzt bemerkte, was ich versuchte war {'a', 'b', 'c'}, was eine kategorische Anordnung schafft. Wird die Frage aktualisieren. –

Antwort

1

Wenn Sie eine Zelle-Array von Strings (Zeichen) machen wollen Verwenden Sie dann die cellstr() Funktion. Dadurch wird jede Zeile eines Char-Arrays in eine separate Zeichenfolge in einem Zellenarray umgewandelt. Da Ihr string Variable eine einzelne Zeile ist, verwenden Sie die einzelnen Anführungszeichen es zu einer Spalte transponieren und dann verwenden cellstr():

string ='abcd' 
A = cellstr(string') % The single quote after the string variable transposes it to a column 

Der Ausgang A wird säulen sein, so dass eine Reihe zell Array ein Einen Stick Apostroph nach dem A, zum Beispiel bei der Verwendung mit categorical() wie Sie erwähnen:

B = categorical(A') 
0

Strings in Matlab sind bereits wirklich ein Vektor von Zeichen.

str = 'abcd'; 
length(str) %4 
str(1) %a 
str(2:3) %bc 
+0

Die Frage wurde schlecht gestellt. Es tut mir Leid. Bitte löschen Sie die Antwort und versuchen Sie, eine weitere hinzuzufügen. –

+0

Da habe ich ealer gesagt, ja, aber das ist nur vor R2016b der Fall. Seither existiert auch der 'string' Datentyp für Strings/Zeichen – Adriaan

1

Sie num2cell für diesen Zweck verwenden können, wie folgt:

string ='abcd'; 
num2cell(string) 

Ausgang: -

ans = 
    'a' 'b' 'c' 'd' 
Verwandte Themen