如何在MATLAB中创建新图形?

如何在MATLAB中创建新图形?,matlab,plot,figure,Matlab,Plot,Figure,通常我在绘图时,它总是画在同一个图形上。我如何使它画在一个新图形上 我知道这很简单,但我不是用谷歌搜索找到的 figure; plot(something); 或 等等。另一件需要注意的事情是,在开始新绘图时使用clf(清除图形)命令。否则,您可能正在一个预先存在的图形上打印(使用figure命令本身是不可能的,但是如果使用figure(2)命令,则可能已经有一个图形#2),该图形具有多个轴,或者放置了一个轴。使用clf确保您从头开始: figure(N); clf; plot(somethi

通常我在绘图时,它总是画在同一个图形上。我如何使它画在一个新图形上

我知道这很简单,但我不是用谷歌搜索找到的

figure;
plot(something);


等等。

另一件需要注意的事情是,在开始新绘图时使用
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
将为下一个绘图创建一个新图形。在调用
时,您还可以对其进行配置。例如:

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');
使用带点符号的手柄或
设置
,此处配置了打印选项

通过保留具有distinc名称的地物的控制柄,您可以与多个活动地物交互。要将现有地物设置为活动地物,请调用
地物(figHandle)
。新的绘图现在就要到那里了。

就这么简单-

figure, plot(yourfigure);

另一个常见的选项是,您确实希望在单个窗口中显示多个绘图

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

在同一(新)图形上绘制多个数据集。

Matlab的集成帮助(
doc
)非常有用,它的搜索工具运行良好。Matlab中是否有一些设置,以便每次我发出命令
plot
,它都在新图形窗口上绘制,而无需专门键入图形(n)接下来是plot?@Federico A.Ramponi为什么不从图(1)开始,而是从图(2)开始?@Masi:这应该仍然是可能的,但它可能只适用于图('Name',Name)–这里的名称是字符串。你能测试一下吗?对于最新的Matlab版本,您还可以通过点符号访问figure属性:figure.Name='myFigureName'尝试使用figure('Name','Name of figure')。第一个字符串是属性,第二个字符串是用于该属性的值。dot约定用于一次访问一个属性。我认为Matlab2012/13中的图等未实施。但是,自定义类已经可以使用它了。
f = figure;
hold on
plot(x1,y1)
plot(x2,y2)
...