Как создать новую фигуру в MATLAB? - PullRequest
51 голосов
/ 11 января 2009

Обычно, когда я рисую в MATLAB , он всегда рисует на одной фигуре. Как заставить его нарисовать новую фигуру?

Я знаю, что это довольно элементарно, но я не нахожу его с помощью поиска Google.

Ответы [ 6 ]

75 голосов
/ 11 января 2009
figure;
plot(something);

или

figure(2);
plot(something);
...
figure(3);
plot(something else);
...

и т.д.

22 голосов
/ 27 октября 2010

Выполнение «figure (1), figure (2), ...») решит проблему в большинстве случаев, но не решит их во всех случаях. Предположим, у вас на рабочем столе куча цифр MATLAB, и сколько у вас открытых, время от времени меняется, прежде чем вы запустите свой код. Используя предоставленные ответы, вы перезапишете эти цифры, которые вам могут не понадобиться. Простой обходной путь - просто использовать команду «цифра» перед построением графика.

Пример: у вас на рабочем столе пять фигур из предыдущего скрипта, который вы запустили, и вы используете

figure(1);
plot(...)

figure(2);
plot(...)

Вы только что нанесли на график фигуры на рабочем столе. Однако код

figure;
plot(...)

figure;
plot(...)

только что создал цифры 6 и 7 с нужными вам графиками и оставил ваши предыдущие графики 1-5 в покое.

12 голосов
/ 13 января 2009

Еще одна вещь, о которой следует быть осторожным, это использовать команду clf (четкая фигура) при запуске нового графика. В противном случае вы можете строить графики на уже существующей фигуре (это невозможно с помощью команды figure, но если вы делаете figure(2), возможно, уже есть фигура №2), с более чем одной осью или осью, которая размещен довольно забавно. Используйте clf, чтобы убедиться, что вы начинаете с нуля:

figure(N);
clf;
plot(something);
...
3 голосов
/ 01 апреля 2015

Как уже было сказано: figure создаст новую фигуру для ваших следующих сюжетов. Во время звонка figure вы также можете настроить его. Пример:

figHandle = figure('Name', 'Name of Figure', 'OuterPosition',[1, 1, scrsz(3), scrsz(4)]);

В этом примере задается имя окна и его внешний размер относительно используемого экрана. Здесь figHandle - дескриптор полученного рисунка и может быть использован позже для изменения внешнего вида и содержания. Примеры:

Точечная запись:

figHandle.PaperOrientation = 'portrait';
figHandle.PaperUnits = 'centimeters';

Старый стиль:

set(figHandle, 'PaperOrientation', 'portrait', 'PaperUnits', 'centimeters');

Используя ручку с точечной нотацией или set, здесь настраиваются параметры печати. ​​

Сохраняя ручки для фигур с разными именами, вы можете взаимодействовать с несколькими активными фигурами. Чтобы установить существующую фигуру в качестве активного, позвоните figure(figHandle). Новые участки пойдут туда сейчас.

1 голос
/ 06 ноября 2015

Другой распространенный вариант - когда вам нужно несколько графиков в одном окне

f = figure;
hold on
plot(x1,y1)
plot(x2,y2)
...

отображает несколько наборов данных на одном (новом) рисунке.

0 голосов
/ 01 апреля 2015

Так просто, как это-

figure, plot(yourfigure);
...