Как я могу получить дескрипторы всех открытых фигур в MATLAB



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



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

642   4  

4 ответов:

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

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

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

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

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

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

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

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

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

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

Я думаю findall должно работать

handles=findall(0,'type','figure')

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

Comments

    Ничего не найдено.