在Matlab中禁用绘图

Mes*_*sop 11 matlab matlab-figure

我有一些用Matlab编写的程序,由于某些原因我需要运行几次(调试,使用不同的输入进行测试等等)

但是,有很多图形由程序及其各种函数绘制,因此每次运行程序时,我都要等待所有图形显示,这非常烦人且耗时(特别是当你是使用小型笔记本电脑).程序执行后,我用a关闭它们close all.

所以我的问题是:

有没有办法在Matlab中禁用所有绘图/图形/图形?在选项中,或通过执行某些代码disable plot,enable plot以确保没有显示数字.

我知道我可以浏览代码并评论绘图部分,但我不想忘记取消注释.

ely*_*ely 13

尝试两个命令的某种组合:

set(gcf,'Visible','off')              % turns current figure "off"
set(0,'DefaultFigureVisible','off');  % all subsequent figures "off"
Run Code Online (Sandbox Code Playgroud)

第二个,如果你把它放在你的程序的开头附近,可能会为你做的伎俩.当然,它仍然在创建绘图,这对于计算时间和/或RAM问题可能是不合需要的.

这是一个可以避免使用Matlab的经典理由.它助长了糟糕的编程设计.要正确解决这个问题,您应该创建一些东西,让您在程序的最高级别"翻转开关",并控制是否显示图表.也许它甚至具有显示/不显示选项的渐变,因此您可以选择不同类型的图表,这些图表根据您正在运行的诊断程序显示/不显示.

理想情况下,您希望这个"翻转开关"创建成为可以访问其他对象的可见性和绘图功能的类.但是因为在Matlab中交互式面向对象是如此繁琐,所以开发这样的解决方案通常不值得,而且大多数人从项目一开始就不考虑这个设计方面.

Matlab会鼓励有人通过制作像"isPlotVisible"之类的标志变量来解决这个问题,并创建始终接受这些标志的函数.我同意这是一个糟糕的设计.

  • `set(0,'DefaultFigureVisible','off');`非常完美!它大大提高了程序的性能.就像花费更多时间为数字创建窗口而不是实际进行实际计算一样. (2认同)