如何用不同的数据绘制相同的数字并删除旧的情节

时间:2015-05-17 19:47:50

标签: matlab plot matlab-figure

为了更快的操作,我想在MATLAB中用不同的数据更新图。如果我使用plot3,它每次都会打开一个新的数字,这很费时间。我不能使用hold命令,因为我不想要早期的情节。有什么建议吗?

2 个答案:

答案 0 :(得分:3)

最初创建绘图对象,然后根据新值更新其'XData''YData''ZData'属性:

axis([0 1 0 1]);
h = plot3(NaN,NaN,NaN,'.'); %// intiallize plot object
for n = 1:20
    x = rand(1,100);
    y = rand(1,100);
    z = rand(1,100); %// example new data for the plot
    set(h, 'XData', x, 'YData', y, 'ZData', z); %// update properties of plot object
    pause(.1)
end

答案 1 :(得分:1)

这是我previous answers之一的短版本问题。

如果您想通过使用绘图对象 /等功能为上一个图形窗口创建新绘图,例如plot3hold命令在任何情况下都是必要的(除了您正在使用Core Graphics Objects)。

要删除以前的图表,您有两个选择:

  1. clf(清晰的图)将重置图形和轴对象(删除图中的所有轴对象),因此可能没有多大的性能。
  2. cla(清除轴)将清除轴(删除轴对象内的所有图形对象)但保留所有标签和轴限制。
  3. 我认为最后一个选项是您正在寻找的。

    测试代码:

    figure
    plot( [10 20], [10 20] );
    xlim( [0,100] ); ylim( [0,100] ); hold on
    xlabel( 'x' );
    ylabel( 'y' );
    
    pause(1)
    cla
    plot( [20 30], [20 30] );