在Matlab中绘图

时间:2010-05-06 02:59:57

标签: matlab plot

你如何在Matlab中同时绘制两个数字?每当我使用surf()时,它都会覆盖旧的。另外,如何保存图像以便将它们导出到MS word或powerpoint等?

7 个答案:

答案 0 :(得分:5)

您可以在不同的窗口中绘制两个数字:


figure(1)
% do plotting
figure(2)
% do plotting

或在子图中:


figure(1)
subplot(1, 2, 1)
% do plotting
subplot(1, 2, 2)
% do plotting

有关详细信息,您可以查看图形和子图功能的MATLAB文档(在帮助菜单中)。

要将图像打印到文件,请参阅打印功能的说明文件。或者只是转到文件 - >另存为,然后选择所需的图像类型。

答案 1 :(得分:1)

在每个plot / surf / mesh之前使用命令图。

例如

X = [1:5];
figure('Name', 'My plot');
plot(X, X+X);
figure('Name', 'My plot number 2');
plot(X, X + X + X);

答案 2 :(得分:1)

在致电figure之前致电surffigure打开一个新的数字窗口。当您致电surf时,它会绘制到当前选定的数字中。

您可以在图窗口中使用菜单Edit-> Copy Figure将图形复制粘贴到Word或Powerpoint中。如果在Word中,单击粘贴的图形并选择“取消组合”,您甚至可以编辑图形。

要保存,请在图窗口的文件菜单中选择“另存为...”。对于Adobe Illustrator,另存为.eps(效果优于.ai)。

答案 3 :(得分:1)

作为之前回复的另一个小补充,您可以使用print -dmeta命令将图形直接打印到剪贴板。然后只需粘贴到Word或PowerPoint文档。我发现它非常整洁。

答案 4 :(得分:1)

@kwatford如果你使用hold all而不是hold on,那么Matlab将使用下一个定义的颜色和线条样式。看看

之间的区别
figure(1);
plot(rand(100,1));
hold on ;
plot(rand(100,1)+2);

figure(2);
plot(rand(100,1));
hold all;
plot(rand(100,1)+2);

答案 5 :(得分:0)

要在单独的窗口中创建新图形,只需说出figure。要导出为图像文件,请使用带有相应print选项的-d命令选择文件格式。像这样:

figure;
plot(rand(100,1), rand(100, 1), 'r*');
print -dpng 'MyImage.png'

答案 6 :(得分:0)

执行hold on以保持当前数字。新图将添加到现有图中。使用hold off将其更改回之前的行为。

print命令(参见Drew Hall的回复)外,您还可以通过“文件”菜单导出为其他格式,或使用编辑菜单的“复制图”功能。如果要将其粘贴到Word或Powerpoint中,如果使用“选择性粘贴”而不是普通粘贴,则可能会得到更好的结果。