两句matlab代码,如何解释?

str1='独上江楼思渺然';
str2=[str1;10*ones(1,length(str1))];
这段代码是正确的,结果如下

也就是说,str2比str1多了好几个空行。如何解释str2呢?
最新回答
小众情人

2024-09-16 07:02:21

str1='独上江楼思渺然';

定义了一个字符串。

str2=[str1;10*ones(1,length(str1))];
这是字符串的一个串联操作。
这里有点意思: 首先数字10的ASCII编码是换行的意思,所以会出现这么7个的空行;注意每个行的长度必须跟str1一样,所以用了length(str1)。有意思的是,因为除第一行外都是空行,你用size(str2)是你发现是2行7列,也就是说,Matlab把7个空行都归一了,但是显示的时候还是有7个空行的位置。

望能帮到你的话,请采纳。
心事过重

2024-09-16 06:09:24

str2=[str1;10*ones(1,length(str1))];
这句意思是str2是一个11行的矩阵,第一行是汉字,剩下的10行是ones创造的行向量
追问
不好意思,我查资料,知道答案了,换行符的ASCII码值是10,其实str2只有两行