Matlab:如何将整型数组转换为字符串数组?

3
在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”


感谢你们提供的三个答案,可以得到c = '1,2,3'。但是我下面的答案是唯一一个实际上“将整数数组转换为字符串数组”的答案 :) - Ben Lin
4个回答

4
您可以简单地使用sprintf()函数:
a = 1:3;
c = sprintf('%d,',a);
c = c(1:end-1);

2

在文件交换中有一个名为vec2str函数可以实现此功能。

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

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

b标签里,您会拥有:
b = 
    '1,2,3'

听起来不错,但不像Oleg的解决方案那么简单,特别是当它需要下载文件时 :) - Ben Lin

2
我发现了一种解决方案: 在获取字符串(而不是数组)后,将其分割:
b = int2str();   %b='1  2  3'
c = strsplit(b); %c='1' '2' '3'

然后我可以得到我想要的结果c=strjoin(c, ',')。


2

您可以使用:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接