【发布时间】:2012-05-10 00:27:15
【问题描述】:
我想连接字符串。我尝试使用strcat:
x = 5;
m = strcat('is', num2str(x))
但是这个函数会从每个字符串中删除尾随的空白字符。是否有另一个 MATLAB 函数来执行字符串连接并保持尾随空格?
【问题讨论】:
标签: string matlab concatenation
我想连接字符串。我尝试使用strcat:
x = 5;
m = strcat('is', num2str(x))
但是这个函数会从每个字符串中删除尾随的空白字符。是否有另一个 MATLAB 函数来执行字符串连接并保持尾随空格?
【问题讨论】:
标签: string matlab concatenation
您可以使用horzcat 代替strcat:
>> strcat('one ','two')
ans =
onetwo
>> horzcat('one ','two')
ans =
one two
或者,如果您要将数字替换为字符串,最好使用sprintf:
>> x = 5;
>> sprintf('is %d',x)
ans =
is 5
【讨论】:
这没有考虑哪些空格?只有你没有提到的空间!你的意思是:
m = strcat( ' is ',num2str(x) )
也许?
Matlab 不会猜测 (a) 你想要空格或 (b) 它猜测你想要的空格放在哪里。
【讨论】:
看看strcat documentation上的最后一个例子:尝试使用水平数组连接而不是strcat:
m = ['is ', num2str(x)]
另外,请查看sprintf,了解有关字符串格式(前导/尾随空格等)的更多信息。
【讨论】:
怎么样
strcat({' is '},{num2str(5)})
给了
' is 5'
【讨论】:
使用strjoin 怎么样?
x = 5;
m ={'is', num2str(x)};
strjoin(m, ' ')
【讨论】: