2016-09-01 34 views
2

为什么strcat(mystring)与mystring不同?

[~, currenthost] = system('hostname'); 
table({currenthost}, 'VariableNames', {'host'}) 

ans = 

     host 
    __________ 

    [1x9 char] 

,而这样做

[~, currenthost] = system('hostname'); 
table({strcat(currenthost)}, 'VariableNames', {'host'}) 

ans = 

     host 
    _________ 

    'my-hostt' 

为什么?

回答

6

实际差异小于您的想法。

strcat删除尾随空格。你的currenthost变量是'my-hosttt '(注意最后一个空格)。当你致电strcat上次空间被删除。

巧合的是,在表格中显示字符的MATLAB限制是9,所以如果有一个长度为8的字符串,它会显示字符串本身,如果它更长,它会告诉你它的长度!

长话短说:他们是一样的类型,字符少。由于长度的限制,MATLAB只是显示不同。

+1

是的,就是这样。尽管如此,人们应该注意到Matlab命令行中的尾随空格?! – jakub

+0

@jakub耶...你只是有运气不好,你的主机名是8个字符。如果它是9,你会意识到1x9和1x10字符数组! –

+0

@jakub看看[这里](http://stackoverflow.com/q/37998621/3372061)的一个窍门是在使用'strcat'时保留空格。 –

相关问题