我终于开始厌倦了matlabs打印输出功能。我的意思是disp
对于单个输出非常好,因为它实现了为每个对象定义的打印输出。但是,如果想要多个打印输出怎么办?让我们说我想打印一个结构和一个双。
a.q=1; a.r.t=2;
disp(1,a); %Crash! too many input arguments.
我希望函数调用dispfcn(1,a)
输出的内容真的像
1, a:[1x1 struct] % or
1, [1x1 struct] %or
1, a.q=1, a.r % let us keep values to first level or
1, a.q=1
a.r
或者其他什么。问题是我准备让matlab决定。现在我可以用
来管理disp({1,a})
但是,这看起来很难看,并且会用[]
disp({'turn:',1,'a:',a})
它也给人的印象是我处理的是单独的值,这并不好。最好的是在matlab中存在输出流。这会让事情变得简单:例如
stream s = [];
stream.add('turn: 1',1);
...
s.print; %or disp(s)?
或
stream s = stream('turn: ', 1, ...
disp(s);
有没有人知道matlab中是否有可以打印的流,或者是否有一个函数fcn
可以返回out = 'a:[1x1 struct]'
来进行通话
out=fcn(a);