如何plotedit
在函数中提取 Matlab 图形的状态?如果我想知道当前图形的缩放状态,我可以这样写:
zoomState = get(zoom(gcf), 'Enable');
类似的语法 forplotedit
不起作用,因为plotedit(gcf)
切换plotedit
状态而不返回任何内容。由于无法获取plotedit
' 的当前状态,我不知道如何在我的函数完成后暂时将其设置为“关闭”并恢复其值。有任何想法吗?
我刚刚收到了 MathWorks 关于这个问题的答复:
这是您可能想要使用的未记录功能:
ison = plotedit(gcf,'isactive')
这将告诉您 PLOTEDIT 是否处于活动状态。但是,由于这是未记录的,因此它可能会在将来的版本中更改或不起作用。
我认为这回答了我的问题。
如果你open plotedit
在命令行输入,你会看到它实际上是一个 m 文件。当状态切换时,它会调用未记录的函数activateuimode
来完成脏活。胡乱猜测,我help getuimode
在命令行输入并返回消息
This function is undocumented and will change in a future release
所以函数存在。activateuimode
据推测,使用与in相同的输入参数调用它plotedit
会做你想要的。那是,
getuimode(myFigHandle, 'Standard.EditPlot')
在我的系统上,[]
如果不是处于编辑模式,它会返回,如果是,它会返回一个实例uitools.uimode
。
但是请注意,这种方法可能有点狡猾 - 正如帮助所说,它可能会在未来的版本中改变。如果你打开getuimode
,你会看到它自 2007 年以来一直是一样的,但据我了解,在 R2013 中对 UI 系统进行了大修,所以它可能在最近的版本中发生了变化(我正在运行 R2012a) .