我在Unix上的Matlab上远程运行一些代码,生成许多图表。我不希望在我的本地系统上弹出数百个数字。 (我怀疑窗口化进程也会减慢代码的执行速度。)我读到将DISPLAY环境变量设置为null会限制此行为,实际上,
$export DISPLAY=
$matlab14a -nodisplay -nosplash
>>X=1:10;
>>Y=X.^2;
>>plot(X,Y);
立即将光标返回控制台,不显示绘图。但是,我希望能够重新切换显示。我可以跑
>>setenv('DISPLAY',':1102') %Previous (correct) value of $DISPLAY
>>getenv('DISPLAY')
ans =
:1102
>>plot(X,Y);
但是,情节仍然没有出现。我相信这是因为我的系统通过qrsh调度程序然后另一个子shell路由matlab实例。因此,当我更改我的DISPLAY变量时,我相信无论哪个shell都没有访问此变量。我不知道这个过程的具体细节。
我的问题是,一旦我将DISPLAY变量更改为正确值,我怎样才能让Matlab正确显示图?或者,是否还有其他解决方案可以切换所有绘图/图形的显示?
答案 0 :(得分:2)
我认为运行带有-nodisplay
标志的maltab会使它完全忽略所有数字,我认为你不能通过更改DISPLAY
环境变量来恢复它。
您可以做的是将默认 'visible'
属性设置为'off'
set( 0, 'DefaultFigureVisible', 'off');
在您的代码开始运行之前,只需将'visible'
变为'on'
即可查看您真正想要查看的数字。或者,在完成程序的主要计算部分后,将默认值重置为'on'
。
set( 0, 'DefaultFigureVisible', 'on');
有关设置属性默认值的详细信息,请参阅here。
答案 1 :(得分:0)
例如,您需要将每个图形的句柄保存到数组中。然后,您可以使用命令set(h(index),'visible','on')