2013-04-04 80 views
2

如何提取函數內部的Matlab圖形的plotedit狀態?如果我想知道目前的數字的變焦狀態,我可以這樣寫:Matlab圖形的Plotedit狀態

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

類似的語法plotedit不起作用,因爲plotedit(gcf)切換的plotedit狀態,不返回任何東西。如果沒有辦法獲得plotedit的當前狀態,我不知道如何臨時將其設置爲「關閉」並在我的功能完成後恢復其值。有任何想法嗎?

回答

1

我剛剛收到的答案從MathWorks公司在這個問題上:

這裏是無證功能,你可能要使用:

ison = plotedit(gcf,'isactive') 

這會告訴你,如果PLOTEDIT是主動或不。但是,由於這個 沒有記錄,它可能會在未來的版本中發生變化或不起作用。

我認爲這回答了我的問題。

0

如果您在命令行鍵入open plotedit,您將看到它實際上是一個m文件。當狀態切換時,它會調用未記錄的功能activateuimode來完成骯髒的工作。瞎猜,我在命令行中鍵入help getuimode和回來

This function is undocumented and will change in a future release 

所以函數存在的消息。據推測,使用activateuimodeplotedit相同的輸入參數調用它可以做你想做的事。也就是說,

getuimode(myFigHandle, 'Standard.EditPlot') 

在我的系統,它返回[]如果不是在編輯模式下,且uitools.uimode一個實例,如果它是。

但是,請注意,這種方法可能有點不禮貌 - 正如幫助中所說的,它可能會在未來的版本中發生變化。如果你打開getuimode,你會發現它自2007年以來一直保持不變,但據我所知,R2013中的UI系統已經進行了大規模的修改,所以它在最新版本中可能發生了變化(我正在運行R2012a )。

+0

不幸的是,這不適合我。我嘗試過'getuimode(myFigHandle,'Standard.EditPlot')',但這給了我'uitools.uimode',無論'plotedit'狀態如何。 – user1919235 2013-04-08 14:02:13