2012-04-30 40 views
5

Tôi muốn nối các chuỗi. Tôi đã thử sử dụng strcat:Ghép nối chuỗi với dấu cách

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

nhưng chức năng này sẽ xóa các ký tự khoảng trắng ở cuối mỗi chuỗi. Có một chức năng MATLAB để thực hiện chuỗi nối mà duy trì dấu chấm trắng không gian?

Trả lời

12

Bạn có thể sử dụng horzcat thay vì strcat:

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

Ngoài ra, nếu bạn đang đi để được thay thế số thành chuỗi, nó có thể là tốt hơn để sử dụng sprintf:

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

gì không gian điều này không đưa vào tài khoản? Chỉ những không gian bạn chưa đề cập! Ý của bạn là:

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

có lẽ?

Matlab sẽ không đoán (a) bạn muốn có khoảng trống hoặc (b) vị trí để đặt khoảng trống mà nó đoán bạn muốn.

+0

không gian bạn đặt tại đó, sẽ được cắt bớt nếu bạn sử dụng strcat –

2

Hãy nhìn vào ví dụ cuối cùng về các strcat documentation: hãy thử sử dụng bởi ghép mảng ngang thay vì strcat:

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

Ngoài ra, có một cái nhìn tại sprintf để biết thêm thông tin về định dạng chuỗi (hàng đầu/dấu không gian vv .).

4

Làm thế nào về

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

cung cấp cho

' is 5' 
2

Làm thế nào về việc sử dụng strjoin?

x = 5; 
m ={'is', num2str(x)}; 
strjoin(m, ' ') 
Các vấn đề liên quan