【问题标题】:How to format output using MATLAB's num2str如何使用 MATLAB num2str 格式化输出
【发布时间】:2010-06-16 22:26:57
【问题描述】:

我正在尝试在 MATLAB 中将数字数组作为字符串输出。我知道这很容易使用num2str 完成,但我想要逗号后跟一个空格来分隔数字,而不是制表符。数组元素最多只能解析到十分位,但大多数都是整数。有没有办法格式化输出,以便去掉不必要的尾随零?以下是我设法整理的内容:

data=[2,3,5.5,4];
datastring=num2str(data,'%.1f, ');
datastring=['[',datastring(1:end-1),']']

给出输出:

[2.0, 3.0, 5.5, 4.0]

而不是:

[2, 3, 5.5, 4]

有什么建议吗?

编辑:我刚刚意识到我可以使用 strrep 通过调用来解决此问题

datastring=strrep(datastring,'.0','')

但这似乎比我一直在做的更笨拙。

【问题讨论】:

    标签: string matlab string-formatting


    【解决方案1】:

    代替:

    datastring=num2str(data,'%.1f, ');
    

    试试:

    datastring=num2str(data,'%g, ');
    

    输出:[2, 3, 5.5, 4]

    或者:

    datastring=sprintf('%g,',data);
    

    输出:[2,3,5.5,4]

    【讨论】:

      【解决方案2】:

      另一个使用MAT2STR的选项:

      » datastring = strrep(mat2str(data,2),' ',',')
      datastring =
      [2,3,5.5,4]
      

      2 是精度位数。

      【讨论】:

      • 请注意,精度的位数也会减少小数。例如mat2str(123,2) 返回1.2e+002
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-02
      • 1970-01-01
      • 2016-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多