matlab中numstr()前面的空格省略

matlab中numstr()前面的空格省略,matlab,Matlab,为什么在matlab中,当您键入以下语句时 percentage =22 strcat('Transfer is ', num2str(percentage), '% complete'); 结果将删除numstr()运算符之前的空白。。。i、 e ans = 'Transfer is23% complete' 有没有办法防止它窃取我的空白?这是因为strcat删除了空白。根据文件strcat: 对于字符数组输入,strcat将删除尾随的ASCII空白字符:空格、制表

为什么在matlab中,当您键入以下语句时

    percentage =22
    strcat('Transfer is ', num2str(percentage), '% complete');
结果将删除numstr()运算符之前的空白。。。i、 e

    ans = 'Transfer is23% complete'

有没有办法防止它窃取我的空白?

这是因为
strcat
删除了空白。根据
文件strcat

对于字符数组输入,strcat将删除尾随的ASCII空白字符:空格、制表符、垂直制表符、换行符、回车符和换行符。

解决方案:

1) 您可以尝试
sprintf('Transfer is%d%%complete',percentage)


2) 使用
['Transfer is',num2str(百分比),'%complete']
而不是
strcat
进行字符串连接。

以下操作应有效:

strcat({'Transfer is '}, num2str(percentage), {'% complete'});
虽然最终会得到一个单体单元数组。如果要串联单个字符串,那么应该真正使用
[]
而不是
strcat

就个人而言,我会使用@grapeot建议的
sprintf