【问题标题】:Convert array to string in MATLAB?在MATLAB中将数组转换为字符串?
【发布时间】:2014-11-16 00:58:05
【问题描述】:

我有一个向量 a = [1 2 3 4 5] 我如何使它成为 b = '12345'?

我试过b = num2str(a),但它输出1 2 3 4 5

【问题讨论】:

    标签: arrays string matlab vector


    【解决方案1】:

    您可以在num2str 中指定格式,就像在C 的函数sprintf 中一样:

    b = num2str(a,'%i');
    

    或者使用sprintf:

    b = sprintf('%i',a);
    

    如果a只包含一位数字,也可以直接转换为char

    b = char(a+'0');
    

    【讨论】:

    • 非常感谢 Luis 帮我解决这个问题,这正是我想要的。我的另一个问题是如何使 c 的第一个元素具有此值?如c(1) = 12345?
    • 我从您的问题中了解到,所需的结果 '12345' 是一个字符串,而不是一个数字(否则使用 Shai's answer 减去 num2str 部分)。所以你想给变量c的第一个元素分配一个string?如果c 必须存储其他可能不同长度的字符串,c 应该是一个元胞数组;你就做c{1} = b
    • 感谢 Luis Mendo 和 Shai 的投入。抱歉,我应该更清楚我的第一个问题,因为我最终希望数组 a 的输出是一个字符串 '12345',这样我就可以把它放到另一个数组的位置。
    【解决方案2】:

    您需要先将 yor 向量转换为单个数字(假设 所有 元素都在 0..9 范围内):

    a = 1:5;
    num = ( 10.^((numel(a)-1):-1:0) ) * a'; %'
    b = num2str( num )
    

    你可以试试这个代码here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-25
      • 2012-11-04
      • 2013-05-31
      • 1970-01-01
      • 1970-01-01
      • 2012-06-09
      相关资源
      最近更新 更多