webentwicklung-frage-antwort-db.com.de

Matlab: Konvertiert ein Array von Zahlen in ein Array von Strings

Wie kann ich [12 25 34 466 55] in ein Array von Strings ['12' '25' '34' '466' '55'] konvertieren? Die mir bekannten Konvertierungsfunktionen konvertieren dieses Array in eine Zeichenfolge, die das gesamte Array darstellt.

27
olamundo

Ein String-Array muss ein Zellenarray sein. Das gesagt:

s = [12 25 34 466 55]
strtrim(cellstr(num2str(s'))')
30
Peter

Die Verwendung von arrayfun zusammen mit num2str würde funktionieren:

>> A = [12 25 34 466 55]
A =
   12    25    34   466    55

>> arrayfun(@num2str, A, 'UniformOutput', false)
ans = 
    '12'    '25'    '34'    '466'    '55'
11
Kavka

Jetzt können Sie nach MATLAB 2016b einfach verwenden

s = [12 25 34 466 55]; 
string(s)
10
Roun

In MATLAB ist ['12 '' 25 '' 34 '' 466 '' 55 '] dasselbe wie eine einzelne Zeichenfolge, die diese Nummern enthält. Das heißt:

['12' '25' '34' '466' '55']

ans =

12253446655

Ich brauche hier mehr Kontext für das, was Sie erreichen wollen, aber wenn Sie dennoch auf jede einzelne Zahl als String zugreifen möchten, ist ein Zellenarray wahrscheinlich der beste Ansatz, den Sie verwenden können:

A = [1 2 3]
num2cell(num2str(A))

(Natürlich müsstest du noch die verirrten Felder aus den Ans entfernen.)

0
Vish

Ab R2016b gibt es auch die Compose-Funktion:

>> A = [12 25 34 466 55]

A =

    12    25    34   466    55

>> compose("%d", A)

ans = 

  1×5 string array

    "12"    "25"    "34"    "466"    "55"'''
0
MiB_Coder