如何在图表中仅显示10秒的数据? MATLAB

时间:2014-07-17 15:45:22

标签: matlab graph axis

我正在进行一项实验,我会在温度与时间图表上实时读取温度读数并实时绘制结果。我目前正在使用的代码绘制了图中整个90秒的数据。我试图在图上只显示10秒的数据,这样我就可以更好地分析数据。例如,对于在第11秒显示的所有已经采集的数据的前10秒,它将显示1-11秒的数据,之后它将显示数据2-12秒,依此类推。我试图更改图表上的轴设置,但效果不佳。 这是我正在使用的代码

a=arduino('COM5');% connect to ardunino
ai_pin= 0;
tic;
i=0;

while toc<90;
    i=i+1;
    time(i)=toc; 
    toc_show=time(i)+10;  
    t(i)=a.analogRead(ai_pin); %temperature reading
    figure(1);
    plot(time,v);
    axis([time(i),toc_show,0,500]);% should set axis to display needed data but doesn't work well
    pause(0.01);
    currFrame = getframe(gcf);
end

1 个答案:

答案 0 :(得分:0)

看起来您正在设置x轴以显示 next 10秒,而不是之前的。

你可以改用它:

xmin = time(i) - 10;
xmax = time(i);
axis([xmin,xmax,0,500]);

或者将前10秒的限制修改为[0 10]:

xmin = max(time(i) - 10, 0);
xmax = max(time(i), 10);