web-dev-qa-db-ja.com

Matlab:数値の配列を文字列の配列に変換

[12 25 34 466 55]を文字列の配列['12' '25' '34' '466' '55']に変換するにはどうすればよいですか?私が知っている変換関数は、その配列を配列全体を表す1つの文字列に変換します。

27
olamundo

文字列の配列はセル配列でなければなりません。それは言った:

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

arrayfunnum2strと一緒に使用すると動作します:

>> 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

これで、MATLAB 2016bの後、簡単に使用できます

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

MATLABでは、['12' '25' '34' '466' '55']は、これらの数値を含む単一の文字列と同じです。それは言うことです:

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

ans =

12253446655

あなたが達成しようとしていることのためにここでより多くのコンテキストが必要ですが、あなたがまだ個々の数字に文字列としてアクセスできるようにしたいと仮定すると、セル配列はおそらくあなたが取ることができる最良のアプローチです:

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

(もちろん、ANSから浮遊スペースを削除する必要があります)

0
Vish

R2016b以降、compose関数もあります。

>> 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