在Matlab中可视化直方图的每次迭代

时间:2014-07-04 06:02:28

标签: matlab matplotlib

我有随机数生成的直方图:

x=[0 1];
for iters = 1:10
particles=round(rand(100,1));
hist(particles,x)

理想情况下,我想多次运行此迭代,我希望直方图能够反映这一点;我希望它随着每次运行而改变。但是,它仅显示直方图上的最终运行。使用'抓住'没有帮助,因为这只是将所有直方图绘制在彼此之上。

我希望它是"动画",从某种意义上说,我希望每次运行都对应一个不同的直方图和情节,以显示这个'跳跃'从直方图到直方图。所以基本上我想减慢迭代过程或其他什么。

有谁知道如何实现这个目标?

1 个答案:

答案 0 :(得分:3)

你可以制作一个循环并使用暂停,作为额外的奖励,你甚至可以录制一部实际的电影:

FIG = figure('units','normalized','outerposition',[0 0 1 1]);
vidObj = VideoWriter('file_name','MPEG-4');
vidObj.FrameRate = 20;
open(vidObj);

x=[0 1];
for iters = 1:10
    particles=round(rand(100,1));
    hist(particles,x)
    pause(timeGap)

    drawnow;
    F = im2frame(FIG);
    writeVideo(vidObj,F);    % Add frame to video
end

close(vidObj);