首页 > 解决方案 > 如何在 foo 循环中创建图形?

问题描述

我必须为长度为 31999 的行向量的每 80 次测量创建一个图形。Bn我尝试编写此代码,但我只收到一个包含所有测量值的图形(31999):

k= length(Bn);
for i= 1:80:(k-1)
    Bn1(i) = L(i);
    plot(Bn1);
end

有什么建议吗?

标签: matlabfor-loopmatlab-figure

解决方案


给定一个向量,您可以使用Bn提取从索引开始的 80 个值。因此,在您的循环中,您只需要绘制这些值。iiBn(ii:ii+79)

但是,这将创建 400 个图形窗口,这是无法管理的。我建议您将绘图保存到文件中:

figure
k = numel(Bn);
for ii = 1:80:k
    plot(Bn(ii:ii+79));
    print('-dpng','-r0',sprintf('plot%.3d',ii))
end

plot命令每次都会覆盖之前的绘图。

我建议您查看文档print以了解您在那里的选项(不同的文件格式-d和分辨率-r)。


推荐阅读