5

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

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

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

4

5 回答 5

12

您可以使用horzcat代替strcat

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

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

>> x = 5;
>> sprintf('is %d',x)
ans =
is 5
于 2012-04-30T09:48:28.633 回答
4

怎么样

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

这给了

' is 5'
于 2012-05-02T16:34:32.100 回答
2

查看strcat文档中的最后一个示例:尝试使用水平数组连接而不是strcat

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

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

于 2012-04-30T09:49:55.300 回答
2

怎么用strjoin

x = 5;
m ={'is', num2str(x)};
strjoin(m, ' ')
于 2014-10-20T09:31:04.633 回答
-2

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

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

也许 ?

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

于 2012-04-30T09:48:36.917 回答