Matlab - "密封"一个数字,以便绘图不会覆盖它,但会自动创建一个新的数字

Evg*_*eev 5 matlab plot handle figure matlab-figure

我正在写绘制人物的脚本.我想,直到它被用户手动关闭这个数字保持不变(如点击十字).

如果用户发出在Matlab提示一个绘图命令,这应该不会影响现有的数字,但应该会自动打开一个新的身影.

如何阻止在那里Matlab的重用图形对象默认行为?

当使用图形作为交互式用户界面时,这可能也很重要,当用户希望绘制某些内容时,不应该用其他内容替换它.


我试过的:help gcf说它检索全局'CurrentFigure'属性.因此,在绘图之后,我尝试了set('CurrentFigure', 12345),希望它将当前数字重置为不存在的值(也尝试为零,空数组).但是,抱怨说,它需要一个手柄.于是,我就实例化一个手柄:set('CurrentFigure', handle()),但抱怨说,它是一个抽象类.我想我在寻找可以实例化一个轻量级的手柄子类.

Dev*_*eve 6

NextPlot当前图形的属性设置为new将在下次调用时创建新图plot().这里有一个小例子:

plot(1:10, 1:10); % create a figure
set(gcf, 'NextPlot', 'new'); % next plot goes in new figure
plot(1:10, 1:10);
Run Code Online (Sandbox Code Playgroud)

CurrentFigure您尝试更改的属性只是将句柄存储到最近使用/聚焦的图形.它的值必须是有效的数字处理.你当然可以只创建一个新的空数字与figure()自动设置CurrentFigure到新创建的图的句柄.但你有两个数字窗口打开.因此,我觉得上面的方法是多了几分优雅.