在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'
答案 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*', ',');