Как создать новую фигуру в MATLAB?

51

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

Я знаю, что это довольно элементарно, но я не нашел его с помощью Google Search.

  • 3
    Интегрированная справка Matlab ( doc ) действительно полезна, и ее инструмент поиска работает хорошо.
Теги:
plot
figure

6 ответов

76
Лучший ответ
figure;
plot(something);

или

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

и др.

  • 0
    Есть ли какая-то настройка в MATLAB, чтобы каждый раз, когда я запускаю командный plot , он выводил на экран новое окно рисунка без специального ввода цифры (n), за которой следовал график?
  • 0
    @Federico A. Ramponi Почему бы не начать с цифры (1), а начать с цифры (2)?
22

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

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

figure(1);
plot(...)

figure(2);
plot(...)

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

figure;
plot(...)

figure;
plot(...)

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

12

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

figure(N);
clf;
plot(something);
...
3

Как уже было сказано: 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, здесь настроены параметры печати. ​​

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

  • 0
    @Masi: Это все еще возможно, но может случиться так, что это работает только с цифрой ('Name', name) - имя здесь является строкой. Не могли бы вы проверить это? В последних версиях Matlab вы также можете получить доступ к свойствам фигур через точечную запись: figure.Name = 'myFigureName'
  • 1
    Попробуйте использовать рисунок («Имя», «Имя рисунка»). Первая строка - это свойство, а вторая - значение, используемое для него. Точечная конвенция используется для доступа к одному свойству за раз. Я думаю, что это не было реализовано для рисунка и т.д. в Matlab2012 / 13. Однако он уже может использоваться пользовательскими классами.
1

Другим распространенным вариантом является выбор нескольких графиков в одном окне

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

отображает множество наборов данных на одной и той же (новой) фигуре.

0

Проще всего это -

figure, plot(yourfigure);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню