连接两个字符串,其中第一个字符串在最后的Matlab中有一个空格

时间:2015-04-21 15:45:46

标签: string matlab cell-array

我正在尝试使用以下方法连接两个字符串:

str=strcat('Hello World ',char(hi));

其中hi1x1 cell,其字符串为'hi'

  

str显示为Hello Worldhi

为什么我在之后错过了“Hello World”?

2 个答案:

答案 0 :(得分:4)

原因在于strcat's documentation

  

对于字符数组输入,strcat删除尾随的ASCII空格       字符:空格,制表符,垂直制表符,换行符,回车符和       形式喂。在连接字符时保留尾随空格       数组,使用水平数组连接,[s1, s2, ..., sN]

     

对于单元格数组输入,strcat不会删除尾随空格。

所以:要么使用单元格字符串(将生成包含字符串的单元格)

hi = {'hi'};
str = strcat({'Hello World '},hi)

或普通的,基于括号的连接(将产生一个字符串):

str = ['Hello World ',char(hi)]

答案 1 :(得分:0)

'我不完全确定为什么会发生这种情况,除了上一篇关于文档的回答中提到的内容,但以下代码应该可以解决您的问题。

%create two cells with the strings you wish to concatenate 
A = cell({'Hello World '});
B = cell({'hi'});

%concatenate the strings to form a single cell with the full string you
%want. and then optionally convert it to char in order to have the string
%directly as a variable.
str = char(strcat(A,B));