Plot X, Y, Z axes with respect to time

23 visualizzazioni (ultimi 30 giorni)
Navin Johnson
Navin Johnson il 20 Mar 2022
Commentato: Voss il 21 Mar 2022
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?

Risposta accettata

Voss
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
Navin Johnson
Navin Johnson il 21 Mar 2022
Hi! Thank you so much for your time and answers! It works!
Voss
Voss il 21 Mar 2022
Excellent! You're welcome!

Accedi per commentare.

Più risposte (1)

VBBV
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
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);
Navin Johnson
Navin Johnson il 21 Mar 2022
Oooh I'll try that

Accedi per commentare.

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!

Translated by