How to plot time against acceleration in my code?

6 views (last 30 days)
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)

Accepted Answer

Image Analyst
Image Analyst on 22 Feb 2015
Edited: Image Analyst on 22 Feb 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 Comments
Skye Morrisson
Skye Morrisson on 22 Feb 2015
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 on 22 Feb 2015
When you do diff(), you get a vector one shorter than what you started with.

Sign in to comment.

More Answers (0)

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!