Plot X, Y, Z axes with respect to time
23 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
So I have a file which contains the accelerometer values of a phone. The CSV file contains time, x, y and z columns. I am trying to find a way to plot the 3 axes (x, y and z) vs. time into one graph rather than using 'stackedplot'. How would one go about this?
0 Commenti
Risposta accettata
Voss
il 20 Mar 2022
% making up some data:
t = 0:0.01:10;
x = cos(t);
y = sin(t);
z = t;
% plot x,y,z vs t in one plot:
figure();
plot(t,x,t,y,t,z);
legend('x','y','z');
xlabel('t');
grid on
% or make a 3d line whose points are (x,y,z):
figure();
plot3(x,y,z);
xlabel('x');
ylabel('y');
zlabel('z');
box on
grid on
8 Commenti
Più risposte (1)
VBBV
il 20 Mar 2022
Modificato: VBBV
il 20 Mar 2022
x_back_accel = cell2mat(backside_accel(:,1));
y_back_accel = cell2mat(backside_accel(:,2));
z_back_accel = cell2mat(backside_accel(:,3));
plot(t,x_back_accel,t,y_back_accel,t,z_back_accel);
Convert them to double array and plot it.
5 Commenti
VBBV
il 21 Mar 2022
Modificato: VBBV
il 21 Mar 2022
You can use readmatrix function instead of readtable when importing data and to plot them using your initial code without having to use cell2mat
backside_accel = readmatrix('Lab5-Phone-BackSide/accelerometer.csv');
t = 0:0.1:4;
x_back_accel = backside_accel(:,1);
y_back_accel = backside_accel(:,2);
z_back_accel = backside_accel(:,3);
figure()
plot(t,x_back_accel,t,y_back_accel,t,z_back_accel);
Vedere anche
Categorie
Scopri di più su Line Plots in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!