28

如何转换[12 25 34 466 55]为字符串数组['12' '25' '34' '466' '55']?我知道的转换函数将该数组转换为一个代表整个数组的字符串。

4

5 回答 5

32

字符串数组必须是元胞数组。那说:

s = [12 25 34 466 55]
strtrim(cellstr(num2str(s'))')
于 2012-08-28T17:59:05.857 回答
11

arrayfun一起使用会num2str起作用:

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

>> arrayfun(@num2str, A, 'UniformOutput', false)
ans = 
    '12'    '25'    '34'    '466'    '55'
于 2012-08-28T18:16:12.427 回答
11

现在在 MATLAB 2016b 之后,您可以简单地使用

s = [12 25 34 466 55]; 
string(s)
于 2016-11-05T23:05:28.057 回答
0

在 MATLAB 中, ['12' '25' '34' '466' '55'] 与包含这些数字的单个字符串相同。也就是说:

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

ans =

12253446655

对于您要完成的工作,我需要更多上下文,但假设您仍然希望能够以字符串的形式访问每个单独的数字,那么单元格数组可能是您可以采用的最佳方法:

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

(当然,您仍然必须从 ans 中删除杂散空间)

于 2012-08-28T17:59:16.483 回答
0

从 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"'''
于 2019-05-21T12:56:51.220 回答