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'

4

4 回答 4

4

您可以简单地使用sprintf()

a = 1:3;
c = sprintf('%d,',a);
c = c(1:end-1);
于 2013-06-04T22:51:31.500 回答
2

文件交换中有一个函数可以执行vec2str此操作。

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

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

在里面b你将拥有:

b = 
    '1,2,3'
于 2013-06-04T22:50:43.817 回答
2

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

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

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

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

于 2013-06-04T23:08:09.367 回答
2

您可以使用:

c = regexprep(num2str(a), '\s*', ',');
于 2013-06-04T23:08:21.743 回答