首页 文章

如何在MATLAB中创建新图?

提问于
浏览
49

通常当我在MATLAB中绘图时,它总是绘制在同一个数字上 . 如何让它以新的数字绘制?

我知道这是非常基础的,但我没有使用谷歌搜索找到它 .

6 回答

  • 74
    figure;
    plot(something);
    

    要么

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

    等等

  • 12

    做“图(1),图(2),......”在大多数情况下会解决问题,但在所有情况下都无法解决问题 . 假设您的桌面上有一堆MATLAB数据,并且在运行代码之前,您打开的数量会不时变化 . 使用提供的答案,您将覆盖这些您可能不需要的数字 . 简单的解决方法是在绘图之前使用命令“figure” .

    示例:您在桌面上有五个数字来自您之前运行并使用的脚本

    figure(1);
    plot(...)
    
    figure(2);
    plot(...)
    

    您刚刚在桌面上绘制了数字 . 但是代码

    figure;
    plot(...)
    
    figure;
    plot(...)
    

    刚刚用你想要的图创建了数字6和7,并且单独留下了之前的图1-5 .

  • 0

    另外要注意的是,在开始新的情节时使用 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) . 新的地块现在将去那里 .

  • 1

    另一个常见的选择是在一个窗口中想要多个图

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

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

  • 22

    这很简单 -

    figure, plot(yourfigure);
    

相关问题