【问题标题】:Plotting and saving a plot in a loop after the entire loop is done整个循环完成后在循环中绘制和保存图
【发布时间】:2011-07-01 07:21:11
【问题描述】:

我需要不断更新循环内的绘图,因为我正在对空间中的每个段进行线性回归。我可以做到这一点并显示正确的情节。但是,我似乎无法将最终的情节保存到文件中。我的代码看起来像:

for i = 1:slabs

    %.....SOME LOOPED RESULTS HERE, SHORTENED FOR BREVITY.....

    p = polyfit(collectCoord, collectTemp, 1);
    t2 = floor(min(collectCoord)) : 0.1 : ceil(max(collectCoord));
    y2 = polyval(p,t2);

    h = plot(collectCoord, collectTemp, 'o', t2, y2);
    xlabel('X-Coordinate')
    ylabel('Temperature')
    axis([-8 8 50 800])
    hold on     
end

filename = [folder 'Plot' num2str(stepCount) '.jpg'];
saveas(h, filename);

我到底做错了什么,还是有更好的方法来保存情节?

【问题讨论】:

  • 您对“saveas”的调用看起来没问题,出了什么问题?一个错误?什么都没有保存?...
  • 你能发布你得到的结果图吗,因为乍一看这对我来说还可以。除了美学之外:您可能想要使用不同的图像格式(如果在其他地方使用 LaTeX 或 PNG/GIF 时要在 MS Office、PDF 或 EPS(C) 中使用该图,我建议使用 WMF/EMF)。 JPG 会给你很多不适合图形和文本的伪像(但它是照片的优越格式)。

标签: matlab for-loop save plot


【解决方案1】:

您在刚刚绘制的线的句柄上调用 saveas()。您需要提供图形句柄:

f = figure();

do stuff;

saveas(f, 'file.jpg');
or
saveas(gcf(), 'file.jpg');

【讨论】:

    猜你喜欢
    • 2016-05-01
    • 2016-10-05
    • 2017-10-25
    • 1970-01-01
    • 2015-03-04
    • 2014-12-14
    • 1970-01-01
    • 2019-06-30
    • 2020-11-08
    相关资源
    最近更新 更多