需求
MATLAB在拼接字符串时往往会忽略中间的空格,例如:
s1='A';
s2=' ';
s3='B';
a=strcat(s1,s2,s3)
>>> a=
'AB'
现在想在'AB'
中间添加空格,实现'A B'
的效果,该怎么做呢?
实现方式
只需将空格表示为{32}
即可。
如下:
s1="A";
s2={32};
s3="B";
a=strcat(s1,s2,s3)
>>> a=
"A B"
单引号与双引号的区别
在matlab中,单引号与双引号在表示文件路径名等可以相互替换,没有区别。
在表示字符变量时,单引号表示字符变量,而双引号表示字符串变量。当字符串变量string
与字符变量char
进行相加时,字符变量会自动并入字符串变量。例如:
>> "A"+'b'
>"Ab"
而
>> 'a'+'b'
>195
看到区别了吗。这里为何需要讲这个呢?因为在实现拼接字符串添加空格时(整篇第二段代码),如果变量s1
、's3
均为字符变量char
的话,最后strcat
得到的会是一个1x3
的cell
数组。