




figure;
plot(something);
или же
figure(2);
plot(something);
...
figure(3);
plot(something else);
...
и т.п.
Есть ли какая-то настройка в MATLAB, чтобы каждый раз, когда я запускаю команду plot, она строит график в новом окне рисунка без специального ввода figure (n), за которым следует график?
@Federico A. Ramponi Почему бы не начать с рисунка (1), а начать с рисунка (2)?
Еще одна вещь, о которой следует соблюдать осторожность, - это использовать команду clf (четкое изображение), когда вы начинаете новый сюжет. В противном случае вы можете рисовать на уже существующей фигуре (невозможно с помощью самой команды figure, но если вы выполняете figure(2), там уже может быть фигура # 2), с более чем одной осью или осью, которая размещена довольно забавно . Используйте clf, чтобы убедиться, что вы начинаете с нуля:
figure(N);
clf;
plot(something);
...
Выполнение «рис. (1), рис. (2), ...» решит проблему в большинстве случаев, но не во всех случаях. Предположим, у вас есть куча фигур MATLAB на вашем рабочем столе, и сколько у вас открытых, время от времени меняется, прежде чем вы запустите свой код. Используя предоставленные ответы, вы перезапишете эти цифры, которые могут вам не понадобиться. Простой обходной путь - просто использовать команду "figure" перед построением графика.
Пример: у вас на рабочем столе пять фигурок из предыдущего запущенного скрипта, и вы используете
figure(1);
plot(...)
figure(2);
plot(...)
Вы только что зарисовали цифры на своем рабочем столе. Однако код
figure;
plot(...)
figure;
plot(...)
просто создал фигуры 6 и 7 с желаемыми графиками и оставил ваши предыдущие графики 1-5 в покое.
Как уже было сказано: 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). Теперь туда пойдут новые участки.
@Masi: Это все еще должно быть возможно, но может быть так, что это работает только с рисунком ('Имя', имя) - имя здесь является строкой. Не могли бы вы это проверить? В последних версиях Matlab вы также можете получить доступ к свойствам фигур через точечную нотацию: figure.Name = 'myFigureName'
Попробуйте использовать рисунок («Имя», «Имя рисунка»). Первая строка - это свойство, а вторая - значение, которое будет использоваться для него. Соглашение о точках используется для доступа к одному свойству за раз. Я думаю, что это не было реализовано для рисунка и т. д. В Matlab2012 / 13. Однако он уже может использоваться пользовательскими классами.
Так просто, как это-
figure, plot(yourfigure);
Другой распространенный вариант - когда вам нужно несколько графиков в одном окне.
f = figure;
hold on
plot(x1,y1)
plot(x2,y2)
...
отображает несколько наборов данных на одном (новом) рисунке.
Встроенная справка Matlab (
doc) действительно полезна, и ее инструмент поиска работает хорошо.