【问题标题】:String concatenation with spaces带空格的字符串连接
【发布时间】:2012-05-10 00:27:15
【问题描述】:

我想连接字符串。我尝试使用strcat:

x = 5;
m = strcat('is', num2str(x)) 

但是这个函数会从每个字符串中删除尾随的空白字符。是否有另一个 MATLAB 函数来执行字符串连接并保持尾随空格?

【问题讨论】:

    标签: string matlab concatenation


    【解决方案1】:

    您可以使用horzcat 代替strcat

    >> strcat('one ','two')
    ans =
    onetwo
    >> horzcat('one ','two')
    ans =
    one two
    

    或者,如果您要将数字替换为字符串,最好使用sprintf

    >> x = 5;
    >> sprintf('is %d',x)
    ans =
    is 5
    

    【讨论】:

      【解决方案2】:

      这没有考虑哪些空格?只有你没有提到的空间!你的意思是:

      m = strcat( ' is ',num2str(x) ) 
      

      也许?

      Matlab 不会猜测 (a) 你想要空格或 (b) 它猜测你想要的空格放在哪里。

      【讨论】:

      • 你放在那里的空间,如果你使用 strcat 将被修剪掉
      【解决方案3】:

      看看strcat documentation上的最后一个例子:尝试使用水平数组连接而不是strcat

      m = ['is ', num2str(x)]
      

      另外,请查看sprintf,了解有关字符串格式(前导/尾随空格等)的更多信息。

      【讨论】:

        【解决方案4】:

        怎么样

        strcat({' is '},{num2str(5)})
        

        给了

        ' is 5'
        

        【讨论】:

          【解决方案5】:

          使用strjoin 怎么样?

          x = 5;
          m ={'is', num2str(x)};
          strjoin(m, ' ')
          

          【讨论】:

            猜你喜欢
            • 2022-01-11
            • 1970-01-01
            • 1970-01-01
            • 2021-06-21
            • 2023-03-07
            • 1970-01-01
            • 2015-01-13
            • 2019-02-15
            • 1970-01-01
            相关资源
            最近更新 更多