Unwanted line on plot
23 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I am plotting real time data and I have a continually updating plot. I want to show 50 points on the graph and update as more data comes in. Here is currently what I am doing:
while 1
for i=1:50
plot(x,y)
end
end
Now the problem with this is that once the for loop gets back to the first element, on the plot there is a line that connects the left most data point to the right most data point and continues until the program is stopped.
Is there anyway to get around this line?
EDIT: Adding the complete example
count = 0;
while count < 3
for i = 1 : 30
num1 = rand + 1;
Out1(i) = num1;
c=clock;
Time(i)=(c(5)+(c(6)/100));
plot(Time,Out1)
drawnow();
end
count = count + 1;
end
1 Kommentar
Jan
am 28 Feb. 2012
The posted code does not reproduce the problem, because x and y are not defined. Perhaps you simply wand "plot(x,y,'0')", but this is not clear.
Akzeptierte Antwort
Jiro Doke
am 29 Feb. 2012
Is this what you're looking for?
count = 0;
Out1 = nan(1, 30);
Time = nan(1, 30);
while count < 3
for i = 1 : 30
num1 = rand + 1;
c=clock;
Out1 = [Out1(2:end), num1];
Time = [Time(2:end), (c(5)+(c(6)/60))];
plot(Time,Out1)
pause(0.1);
end
count = count + 1;
end
0 Kommentare
Weitere Antworten (3)
Jiro Doke
am 29 Feb. 2012
[Old Answer]
You're seeing that behavior because you have data points remaining from the previous loop. You can reset the variables Out1 and Time.
count = 0;
while count < 3
Out1 = nan(1, 30);
Time = nan(1, 30);
for i = 1 : 30
num1 = rand + 1;
Out1(i) = num1;
c=clock;
Time(i)=(c(5)+(c(6)/100));
plot(Time,Out1)
drawnow();
end
count = count + 1;
end
BTW, this is called Preallocation which is a good practice when you're assigning values to an array in a loop.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Annotations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!