2010-12-27 15 views
55

У меня есть девять открытых фигур в matlab (сгенерировано другой функцией), и я хочу напечатать их все в файл. Кто-нибудь знает, как захватить ручки всех открытых фигур в MATLAB?Как получить ручки всех открытых фигур в MATLAB

Я знаю о gcf, но, похоже, он не делает то, что я хочу.

ответ

72

Есть несколько способов сделать это. Один из способов сделать это, чтобы получить все дочерние root object (представленные в предыдущих версиях по ручке 0):

figHandles = get(groot, 'Children'); % Since version R2014b 
figHandles = get(0, 'Children');  % Earlier versions 

Или вы могли бы использовать функцию findobj:

figHandles = findobj('Type', 'figure'); 

Если какой-либо из цифры имеют hidden handles, вы можете вместо этого использовать функцию findall:

figHandles = findall(groot, 'Type', 'figure'); % Since version R2014b 
figHandles = findall(0, 'Type', 'figure');  % Earlier versions 
+1

+1 для 'findall', не знал этого. –

+0

Первым аргументом 'get()' и 'findall()' является дескриптор. Что означает, когда 0? –

+2

@MinhTran: Это удержание предыдущих версий, когда корневой объект был представлен дескриптором '0'. Он по-прежнему работает в более новых версиях, но лучше использовать 'groot'. Я обновил свой ответ соответственно. – gnovice

14

Одна из лучших вещей, которые нужно сделать, это не нужно искать для ручек. Когда вы создаете каждую фигуру, запишите ее ручку.

h(1) = figure; 
h(2) = figure; 
... 

Как один из разработчиков здесь сказал мне:

Они называются ручки, потому что вы должны держать на них

+6

Это хороший момент, хотя это зависит от вашей ситуации и рабочего процесса. Если у вас есть множество команд построения графика, которые вызывают различные специализированные сюжеты, и вы хотите что-то, что просто «справляется с тем, что уже происходит», может быть полезно иметь возможность запрашивать дескрипторы. –

+3

Кроме того, есть несколько функций, которые будут отображать много цифр для вас ('anova1' будет отображать три), и они могут не вернуть вам эти ручки – Tex

4

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

+1

+1. Учитывая, насколько могущественна эта относительно неведомая команда, я удивлен, что больше нет бонусов. –

+1

Только что вошел в систему после нескольких месяцев отсутствия, просто чтобы поддержать этот ответ, который Google только указал мне. – user2987828

 Смежные вопросы

  • Нет связанных вопросов^_^