2

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

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

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

4

2 回答 2

1

我刚刚收到了 MathWorks 关于这个问题的答复:

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

ison = plotedit(gcf,'isactive')

这将告诉您 PLOTEDIT 是否处于活动状态。但是,由于这是未记录的,因此它可能会在将来的版本中更改或不起作用。

我认为这回答了我的问题。

于 2013-04-08T14:07:52.587 回答
0

如果你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) .

于 2013-04-04T16:38:15.900 回答