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

Matlab 为什么strcat(mystring)与mystring不同?,matlab,Matlab,做 给予 在做 ans = host __________ [1x9 char] 给予 为什么?实际差异比你想象的要小 strcat删除尾随空格。您的currenthost变量是'my-hosttt'(注意最后一个空格)。调用strcat时,最后一个空格将被删除 巧合的是,MATLAB在表中显示字符的限制是9,因此如果有长度为8的字符串,它将显示字符串本身,如果它更长,它将告诉您它的长度 长话短说:他们是同一类型,没有一个字符。MATLAB只是根据长度

给予

在做

ans = 

       host   
    __________

    [1x9 char]
给予


为什么?

实际差异比你想象的要小

strcat
删除尾随空格。您的
currenthost
变量是
'my-hosttt'
(注意最后一个空格)。调用strcat时,最后一个空格将被删除

巧合的是,MATLAB在表中显示字符的限制是9,因此如果有长度为8的字符串,它将显示字符串本身,如果它更长,它将告诉您它的长度


长话短说:他们是同一类型,没有一个字符。MATLAB只是根据长度的不同显示它们

是的,就是这样。但是,人们怎么会注意到Matlab命令行中的尾随空格@雅库布是的。。。你只是运气不好,你的主机名是8个字符。如果是9,您将实现1x9和1x10字符阵列@jakub在使用
strcat
@Dev iL nice:)时,寻找一个保留空格的技巧。在这种情况下,我希望实际删除空格。我不知道为什么,但当我调用
[a,name]=system('hostname')
时,名称显然有x个字符,但长度为x+1,即添加了一个额外的空格。这很烦人,但很容易去除。
ans = 

       host   
    __________

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

       host   
    _________

    'my-hostt'