How to plot time against acceleration in my code?

Hi! I'm new to Matlab and trying to understand the basics, but I've run into a problem. I have imported data from an excel sheet about the trajectory of a small marble, but when I try the plot acceleration (ax or ay) against the time (t), all values of ax and ay are plotted against one t value! I assume this problem emerges because I am using diff(vx) to differentiate my velocity functions... How can I change my code in order to plot these values against their corresponding ts? Thanks in advance!
x=xlsread('marble excel.xlsx','B2:B26');
y=xlsread('marble excel.xlsx','C2:C26');
t=xlsread('marble excel.xlsx','A2:A26');
vx=x/t;
vy=y/t;
ax=diff(vx);
ay=diff(vy);
plot(t,ax)
hold
plot(t,ay)

 Respuesta aceptada

Image Analyst
Image Analyst el 22 de Feb. de 2015
Editada: Image Analyst el 22 de Feb. de 2015
You need an element-by-element divide, not a matrix divide:
vx = x ./ t;
vy = y ./ t;
plot(t(1:end-1),ax)
hold all;
plot(t(1:end-1),ay)

2 comentarios

thanks! Just one question though: why is t(1:end-1) required instead of t(1:end)? I tried that as well, but a vector length error appears.
Image Analyst
Image Analyst el 22 de Feb. de 2015
When you do diff(), you get a vector one shorter than what you started with.

Iniciar sesión para comentar.

Más respuestas (1)

Vinayak
Vinayak el 1 de Abr. de 2025

0 votos

x=xlsread('marble excel.xlsx','B2:B26');
y=xlsread('marble excel.xlsx','C2:C26');
t=xlsread('marble excel.xlsx','A2:A26');
vx=x/t;
vy=y/t;
ax=diff(vx);
ay=diff(vy);
plot(t,ax)
hold
plot(t,ay)

Categorías

Más información sobre Programming en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 22 de Feb. de 2015

Respondida:

el 1 de Abr. de 2025

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by