2012-04-30 17 views
5

Me gustaría concatenar cadenas. He intentado utilizar strcat:Concatenación de cadenas con espacios

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

pero esta función elimina arrastrar caracteres de espacio en blanco entre cada cadena. ¿Hay otra función de MATLAB para realizar la concatenación de cadenas que mantiene un espacio en blanco al final?

Respuesta

12

Se puede utilizar en lugar de horzcatstrcat:

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

Alternativamente, si usted va a ser la sustitución de los números en cadenas, podría ser mejor usar sprintf:

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

qué espacios ¿esto no tiene en cuenta? ¡Solo los espacios que no has mencionado! ¿Querías decir?

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

quizás?

Matlab no va a adivinar (a) que quiere espacios o (b) dónde colocar los espacios que adivina que quiere.

+0

ese espacio que pones allí, se recortará si usas strcat –

2

Tenga una mirada en el ejemplo final sobre la strcat documentation: trate de usar horizontal concatenar matriz en lugar de strcat:

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

También, echar un vistazo a sprintf para más información sobre el formato de cadenas (líder/espacios finales, etc. .).

4

¿Qué tal

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

que da

' is 5' 
2

Cómo sobre el uso strjoin?

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