how do i live plot 3 different values?
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have an angular velocity signal and i want to plot it live on the same plot around all 3 axes. meaning in each step i want the X axis to move one time step and the Y axis to update wx,wy,wz of said step.
I am currently using animted line, but it updates only 1 value for y axis each time step.
my code is:
H=figure('name','gyro measured');
hold on
grid on
xlabel('Time [sec]')
ylabel('[deg/sec]')
title('measured angular velocity')
sparse_time=0.2;
H = animatedline('marker','.');
for i=1:numel(w_meas)
tic
timer = i*sparse_time;
addpoints(H,times(20*i-19),w_meas(20*i-19,1),w_meas(20*i-19,2))
drawnow limitrate
legend('w_x','w_y','w_z')
calc_time = toc;
pause(0.2-calc_time)
end
drawnow
1 commentaire
Rik
le 9 Sep 2019
Use the output of the plot function to set the XData and YData properties directly inside your loop. The same might be possible with animatedline, read the doc to see if that is possible.
Réponses (1)
Neuropragmatist
le 10 Sep 2019
Can you be more precise in what you want to achieve? For example, here is the Matlab help example given for animatedline:
numpoints = 100000;
x = linspace(0,4*pi,numpoints);
y = sin(x);
figure
h = animatedline;
axis([0,4*pi,-1,1])
for k = 1:numpoints
addpoints(h,x(k),y(k))
drawnow update
end
What do you need to do differently to this? It sounds like you have 3D data but you want the x-axis to move? Does that mean one of your variables is time?
Thanks,
NP.
Voir également
Catégories
En savoir plus sur Animation dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!