如何提取函數內部的Matlab圖形的plotedit
狀態?如果我想知道目前的數字的變焦狀態,我可以這樣寫:Matlab圖形的Plotedit狀態
zoomState = get(zoom(gcf), 'Enable');
類似的語法plotedit
不起作用,因爲plotedit(gcf)
切換的plotedit
狀態,不返回任何東西。如果沒有辦法獲得plotedit
的當前狀態,我不知道如何臨時將其設置爲「關閉」並在我的功能完成後恢復其值。有任何想法嗎?
如何提取函數內部的Matlab圖形的plotedit
狀態?如果我想知道目前的數字的變焦狀態,我可以這樣寫:Matlab圖形的Plotedit狀態
zoomState = get(zoom(gcf), 'Enable');
類似的語法plotedit
不起作用,因爲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
與plotedit
相同的輸入參數調用它可以做你想做的事。也就是說,
getuimode(myFigHandle, 'Standard.EditPlot')
在我的系統,它返回[]
如果不是在編輯模式下,且uitools.uimode
一個實例,如果它是。
但是,請注意,這種方法可能有點不禮貌 - 正如幫助中所說的,它可能會在未來的版本中發生變化。如果你打開getuimode
,你會發現它自2007年以來一直保持不變,但據我所知,R2013中的UI系統已經進行了大規模的修改,所以它在最新版本中可能發生了變化(我正在運行R2012a )。
不幸的是,這不適合我。我嘗試過'getuimode(myFigHandle,'Standard.EditPlot')',但這給了我'uitools.uimode',無論'plotedit'狀態如何。 – user1919235 2013-04-08 14:02:13