2012-04-30 127 views
5

我想連接字符串。我嘗試使用strcat帶空格的字符串連接

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

不過這個功能將刪除每個字符串尾部空白字符。是否有另一個MATLAB函數來執行字符串連接,以維持尾隨的空格?

回答

12

可以使用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)在哪裏放置它猜測你想要的空格。

+0

如果您使用strcat,那麼您放在那裏的空間將被刪除 –

2

看一看最後一個例子在strcat documentation:嘗試使用水平陣列concatination而不是strcat

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

而且,看看sprintf關於字符串格式的詳細信息(前/後間隔等)。

4

如何

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

,讓

' is 5' 
2

如何使用strjoin

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