установка положения множества графических объектов в matlab одной командой - PullRequest
2 голосов
/ 08 апреля 2011

Я студент бакалавриата, делаю мой последний проект Matlab, в котором я должен установить положение многих в настоящее время открытых графических объектов. Я не могу позволить себе вызывать их по отдельности, и при этом я не могу вызывать все свои дескрипторы, используя индексацию и помещая их в цикл. Есть ли способ установить положение более чем одного графического объекта командой или двумя или функцией, которая может сделать это?

1 Ответ

4 голосов
/ 08 апреля 2011

Функция SET позволяет вводить в качестве входных данных вектор графических дескрипторов для работы и комбинации массивов ячеек, структур и пар свойство / значение для имен и значений свойств, что позволяет изменять несколькосвойства для нескольких объектов в одном вызове функции.

Например, предположим, что вы создали 4 набора осей, сложенных друг над другом:

hAxes1 = axes();
title('Axes 1');
hAxes2 = axes();
title('Axes 2');
hAxes3 = axes();
title('Axes 3');
hAxes4 = axes();
title('Axes 4');

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

hVector = [hAxes1; hAxes2; hAxes3; hAxes4];  %# Vector of graphics handles
propertyCell = {'Position'};          %# Cell array containing the property name
valueCell = {[0.1 0.6 0.3 0.3]; ...   %# 4-by-1 cell array containing the new
             [0.6 0.6 0.3 0.3]; ...   %#   values for the axes positions
             [0.1 0.1 0.3 0.3]; ...
             [0.6 0.1 0.3 0.3]};
set(hVector,propertyCell,valueCell);  %# Set the new positions

И вы должны увидеть это в окне фигуры:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...