Matlab:将数组转换为字符串数组

时间:2012-08-28 17:50:20

标签: string matlab numbers type-conversion

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

5 个答案:

答案 0 :(得分:31)

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

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

答案 1 :(得分:11)

arrayfunnum2str一起使用可以起作用:

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

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

答案 2 :(得分:10)

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

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

答案 3 :(得分:0)

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

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

ans =

12253446655

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

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

(当然,你仍然需要从ans中删除杂散空间)

答案 4 :(得分: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"'''