【问题标题】:Matlab: convert int array into string array?Matlab:将int数组转换为字符串数组?
【发布时间】:2013-05-31 11:48:05
【问题描述】:

在 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'

【问题讨论】:

  • 感谢 3 个答案可以得到 c = '1,2,3' 。但是下面我自己的答案是唯一真正“将 int 数组转换为字符串数组”的答案:)

标签: arrays string matlab integer


【解决方案1】:

你可以简单地使用sprintf():

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

【讨论】:

    【解决方案2】:

    有一个名为vec2strfunction in the file exchange 可以执行此操作。

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

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

    b 中,您将拥有:

    b = 
        '1,2,3'
    

    【讨论】:

    • 听起来不错,但不像 Oleg 的解决方案那么简单,尤其是当它需要下载文件时 :)
    【解决方案3】:

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

    得到字符串(不是数组)后,拆分:

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

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

    【讨论】:

      【解决方案4】:

      你可以使用:

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

      【讨论】:

        猜你喜欢
        • 2012-03-26
        • 1970-01-01
        • 1970-01-01
        • 2021-12-21
        • 2016-08-14
        • 1970-01-01
        • 1970-01-01
        • 2016-01-27
        • 2016-08-13
        相关资源
        最近更新 更多