2012-02-20 44 views

回答

3

您通常可以使用手柄圖形屬性執行此操作。例如:

做圖

h = plot(1:10, rand(10,1)); 

然後得到的點的實際值 X =獲得(H, 'XDATA') Y =獲得(H, 'YDATA')

不同類型的對象具有不同的屬性,有時您需要探索。在這種情況下,這個語法很有用。

get(h) %This displays all available properties on `h` to the command window 

最後一個有用的珍聞是gco(「獲取當前對象」)功能,它提供了所繪製或手動點擊的最後一個項目的句柄。如果您不確定繪圖項目的來源,這可以提供幫助。


編輯:

要查找所有這些是物體的後代的屬性,使用findobj,或findall。例如:

findobj(gcf); %Returns all non-hidden, typical objects. This should be your first attempt. 
findall(gcf); %Returns all children, even hidden object, such as titles, manually added annotations, and UI menus 

這一呼籲消除一些常見的UI註釋

get(findall(gcf,'-not','type','uimenu','-not','type','uitoggletool','-not','type','uipushtool','-not','type','uitogglesplittool'),'type') 

(大概是最後一個例子可以用一個設計合理的正則表達式得到改善,但我似乎無法獲得這種權利,現在工作)

+0

謝謝!你的回答非常有用。 使用命令「gco」,「get」和「set」我可以控制放在圖上的最後一個對象的屬性。 還有一件事我需要:我如何列出所有在劇情上的對象? – Ian 2012-02-21 09:39:35

+0

'findobj(gcf)'提供了當前圖中所有後代的句柄。 'findobj'對於這類工作非常有用,它還可以基於屬性值(或其邏輯組合)過濾列表。 '幫助findobj'獲取更多。 – Pursuit 2012-02-21 14:47:55

+0

遺憾的是不工作:( 這是我的例子我創建了一個簡單的情節 t = 0時:0.25:3 * PI; Y = 0.9 * SIN(噸)*(T); 情節( t,y); 然後我添加了一個直線和一個矩形 如果我選擇其中的一個,用命令「gco」我得到相應的句柄,所以我可以訪問它的所有屬性 開另一方面,使用findobj(gcf)我得到了三個句柄,但是與之前的句柄沒有對應關係 – Ian 2012-02-21 18:26:17