Matlab图形的Plotedit状态

Matlab图形的Plotedit状态,matlab,figure,Matlab,Figure,如何提取函数中Matlab图形的plotedit状态?如果我想知道当前图形的缩放状态,我可以写: zoomState = get(zoom(gcf), 'Enable'); plotedit的类似语法不起作用,因为plotedit(gcf)切换plotedit状态而不返回任何内容。由于无法获取plotedit的当前状态,我不知道如何在函数完成后临时将其设置为“关闭”并恢复其值。有什么想法吗?如果在命令行中键入open plotedit,您将看到它实际上是一个m文件。切换状态时,它调用未记录的

如何提取函数中Matlab图形的
plotedit
状态?如果我想知道当前图形的缩放状态,我可以写:

zoomState =  get(zoom(gcf), 'Enable');

plotedit
的类似语法不起作用,因为
plotedit(gcf)
切换
plotedit
状态而不返回任何内容。由于无法获取
plotedit
的当前状态,我不知道如何在函数完成后临时将其设置为“关闭”并恢复其值。有什么想法吗?

如果在命令行中键入
open plotedit
,您将看到它实际上是一个m文件。切换状态时,它调用未记录的函数
activateuimode
,以执行脏工作。我胡乱猜了一下,在命令行中键入了
help getuimode
,然后得到了消息

  This function is undocumented and will change in a future release
所以函数是存在的。大概,使用与
plotedit
中的
activateuimode
相同的输入参数调用它将实现您想要的功能。就是

getuimode(myFigHandle, 'Standard.EditPlot')
在我的系统上,如果未处于编辑模式,则返回
[]
,如果处于编辑模式,则返回
uitools.uimode
的实例


然而,请注意,这种方法可能有点不可靠——正如帮助所说,它可能会在未来的版本中发生变化。如果打开
getuimode
,您将看到它自2007年以来一直保持不变,但据我所知,R2013中的UI系统进行了重大检修,因此在最新版本(我运行的是R2012a)中可能发生了更改。

我刚刚收到MathWorks关于此问题的答复:

以下是您可能想要使用的未记录功能:

ison = plotedit(gcf,'isactive')
这将告诉您PLOTEDIT是否处于活动状态。但是, 它可能会更改,或者在将来的版本中不起作用


我想这回答了我的问题。

不幸的是,这对我来说并不适用。我尝试了
getuimode(myFigHandle,'Standard.EditPlot')
,但不管
plotedit
状态如何,这都会给我
uitools.uimode