strcat two char arrays, how to remove the space?

2 次查看(过去 30 天)
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!

采纳的回答

Sean de Wolski
Sean de Wolski 2011-7-15
val(:,15) = []; %just delete that column
  3 个评论
Sean de Wolski
Sean de Wolski 2011-7-15
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 2011-7-15
Thanks again.
Btw, my b is from num2str of a vector of number.

请先登录,再进行评论。

更多回答(2 个)

Fangjun Jiang
Fangjun Jiang 2011-7-15
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 个评论
Fangjun Jiang
Fangjun Jiang 2011-7-15
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

请先登录,再进行评论。


Walter Roberson
Walter Roberson 2011-7-15
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.

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

标签

产品

Community Treasure Hunt

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

Start Hunting!

Translated by