2012-02-20 4 views

ответ

3

Обычно вы можете сделать это, используя свойства графики ручки. Например:

сделать сюжет

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

Затем получить фактические значения точек х = получить (Л, 'XData') Y = получить (h, 'ydata')

Различные типы объектов имеют разные свойства, иногда вам приходится исследовать. В этом случае этот синтаксис полезен.

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

Окончательные полезные пикантная функция gco («получить текущий объект»), который обеспечивает ручку последнего элемента, который нанесен вручную или щелкнул. Это может помочь, если вы не знаете, откуда взялся объект.


Edit:

Чтобы найти все свойства, которые являются потомками объекта, используйте либо 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

+0

'findobj (gcf)' предоставляет дескрипторы всех потомков текущего рисунка. 'findobj' очень полезен для такого рода работ, он также может фильтровать список на основе значений свойств (или их логических комбинаций). 'help findobj' для больше. – Pursuit

+0

, к сожалению, не работает :( Вот мой пример, который я создал простой сюжет т = 0: +0,25:.. 3 * пи; у = 0,9 * sin (т) * (т); участка (t, y) , а затем я добавил только строку и прямоугольник. Если я выберу один из них, с помощью команды «gco», я получаю соответствующий дескриптор, и поэтому у меня есть доступ ко всем его свойствам. On с другой стороны, используя findobj (gcf), я получаю три ручки, но нет соответствия с предыдущими. – Ian