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

Tak*_*Tak 5 string matlab cell-array

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

str=strcat('Hello World ',char(hi));
Run Code Online (Sandbox Code Playgroud)

哪个hi1x1 cell有字符串的'hi'.

str看起来像这样Hello Worldhi.

为什么我错过了' ' after Hello World

Lui*_*ndo 4

原因在strcat文档中:

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

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

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

hi = {'hi'};
str = strcat({'Hello World '},hi)
Run Code Online (Sandbox Code Playgroud)

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

str = ['Hello World ',char(hi)]
Run Code Online (Sandbox Code Playgroud)