strcat two char arrays, how to remove the space?

I have two char arrays a and b, say
a is a 5*14 char
var =
NKY 08/12/11 C
NKY 08/12/11 C
NKY 08/12/11 C
NKY 08/12/11 C
NKY 08/12/11 C
b is a 5*5 char
val =
5900
5905
5910
5915
5920
If I do strcat(a,b) or [a,b], it gives me
val =
NKY 08/12/11 C 5900
NKY 08/12/11 C 5905
NKY 08/12/11 C 5910
NKY 08/12/11 C 5915
NKY 08/12/11 C 5920
but I need
val =
NKY 08/12/11 C5900
NKY 08/12/11 C5905
NKY 08/12/11 C5910
NKY 08/12/11 C5915
NKY 08/12/11 C5920
Could anyone tell me how to do that? Very appreciated!

 Respuesta aceptada

Sean de Wolski
Sean de Wolski el 15 de Jul. de 2011
val(:,15) = []; %just delete that column

3 comentarios

Zoe Zhang
Zoe Zhang el 15 de Jul. de 2011
Thanks! So there is like no one-step solution by just manipulating strcat, right?
Sean de Wolski
Sean de Wolski el 15 de Jul. de 2011
the problem is that your "5x5" char, the second input to strcat, is actually a 6x5 char, I believe. It has nothing to do with strcat - it's not adding the zero.
Zoe Zhang
Zoe Zhang el 15 de Jul. de 2011
Thanks again.
Btw, my b is from num2str of a vector of number.

Iniciar sesión para comentar.

Más respuestas (2)

Fangjun Jiang
Fangjun Jiang el 15 de Jul. de 2011
You either have trailing white space at the end of "a" or leading whitespace at the begining of "b". check out the following functions.
help strtrim
help deblank

4 comentarios

Zoe Zhang
Zoe Zhang el 15 de Jul. de 2011
Thank you!
strcat(strtrim(a),strtrim(b));
and strcat(deblank(a),deblank(b));
both gives me the 'NKY 08/12/11 C 5900'
actually my a is coming from repmat, b is from num2str
Fangjun Jiang
Fangjun Jiang el 15 de Jul. de 2011
Well, look at your b, it has 4 letters per row but it says 5x5 char so it got be the leading whitespace.
>> b=[' 5900';' 5905';' 5910';' 5915';' 5920'];
>> c=strtrim(b);
>> whos
Name Size Bytes Class Attributes
b 5x5 50 char
c 5x4 40 char
Zoe Zhang
Zoe Zhang el 15 de Jul. de 2011
IC, thanks :)
Fangjun Jiang
Fangjun Jiang el 15 de Jul. de 2011
The reason might be that you only showed a small portion of your data.
a=[5900:5:5920,15900];
b=num2str(a')
b =
5900
5905
5910
5915
5920
15900

Iniciar sesión para comentar.

Walter Roberson
Walter Roberson el 15 de Jul. de 2011
strcat('NKY 08/12/11 C', strtrim(cellstr(b)))
Note that this allows you to skip the repmat of the constant string.
Note also that this will return a cell array of strings; you can use char() to convert back to a char array.

1 comentario

Zoe Zhang
Zoe Zhang el 15 de Jul. de 2011
Neat and efficient. And the space problem disappear. Thanks a lot!

Iniciar sesión para comentar.

Categorías

Más información sobre Data Type Conversion en Centro de ayuda y File Exchange.

Productos

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by