Plot in real time inside a loop
15 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Paul Pogba
el 16 de Abr. de 2019
Comentada: Walter Roberson
el 15 de Oct. de 2019
I'm reading data from ADC in real time (while loop) and I'm trying to plot in real time. Now, I can't use
pause on; hold on; etc
Because it interferes with ADS's API and how it samples the data. My code looks something like that and it does plot in real time.
while 1 %sampling from ADC
%figure(1); if I uncomment just this line, API crashes
plot(x, datafromADC)
drawnow;
end
But if I want to plot to two different figures at the same time, I can't do it, ADC stops sampling and gives me criptic errors. I try to do something like that:
while 1 %sampling from ADC
figure(1);
plot(datafromADC);
drawnow;
if cond == 1
figure(2);
plot(datafromADC*2);
dranow;
end
end
Is there another way to plot to two different figures inside the loop? Should I use something else instead of 'dranow'?
I'm using DATAQ DI-1110 and its MATLAB API.
0 comentarios
Respuesta aceptada
Walter Roberson
el 16 de Abr. de 2019
Editada: Walter Roberson
el 16 de Abr. de 2019
fig1 = figure(1);
ax1 = axes('Parent', fig1);
ph1 = plot(ax1, nan, nan);
fig2 = figure(2);
ax2 = axes('Parent', fig2);
ph2 = plot(ax2, nan, nan);
while true
update data at this point
set(ph1, 'XData', x, 'YData', datafromADC);
set(ph2, 'XData', x, 'YData', datafromADC*2);
drawnow limit;
end
2 comentarios
Walter Roberson
el 15 de Oct. de 2019
ph1 = plot3(ax1, nan, nan, nan);
and you would likely need to update the ZData property as well.
Más respuestas (0)
Ver también
Categorías
Más información sobre Graphics Performance en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!