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

时间:2013-06-04 22:44:46

标签: arrays string matlab integer

在Matlab中我有整数数组a = [1 2 3]。我需要将它们转换为一个字符串,用','分隔:

c = '1,2,3' 

如果不知何故我可以有一个字符串数组b = ['1''2''3'],那么我可以使用

c = strjoin(b, ',')

实现目标。

所以我的问题是:如何将整数数组a = [1 2 3]转换为字符串数组b = ['1''2''3']?

int2str()不起作用。它会发出

'1 2 3'

并且它不是“字符串数组”,因此strjoin无法应用于它来实现'1,2,3'

4 个答案:

答案 0 :(得分:3)

您只需使用sprintf()

即可
a = 1:3;
c = sprintf('%d,',a);
c = c(1:end-1);

答案 1 :(得分:2)

有一个名为vec2str的{​​{3}}可以执行此操作。

您需要将encloseFlag参数设置为0才能删除方括号。例如:

a = [1 2 3];
b = vec2str(a,[],[],0);

b内,您将拥有:

b = 
    '1,2,3'

答案 2 :(得分:2)

我自己找到了一个解决方案:

获取字符串(不是数组)后,将其拆分:

b = int2str();   %b='1  2  3'
c = strsplit(b); %c='1' '2' '3'

然后我可以按照自己的意愿得到结果c = strjoin(c,',')。

答案 3 :(得分:2)

您可以使用:

c = regexprep(num2str(a), '\s*', ',');