Finding the Velocity at Different intervals
조회 수: 4 (최근 30일)
이전 댓글 표시
tryng to write a code to display the velocity and displacement given a time interval and acceleration at those intervals using integration. getting an error in my for loop what might be the reason
clear all
close all
% Acceleration Vector
a = [0 2 4 7 11 17 24 32 41 48 51];
% define time interval
k =1;
%define time vector
t = 0:k:10;
%initialize velocity
for ii = 1:11
v(ii) = trapz(a(1:ii),k);
end
% calculate the displacement d at each time interval
for jj = 1:11
d(jj) = trapz(v(1:jj),k);
end
% display a table of the velocity values
v = table(t,v,'VariableNames',{'Time(Sec)' 'Velocity(m/s)'})
% display a table of the displacement values
d = table(t',d','VariableNames',{'Time(Sec)' 'Displacement(m)'})
댓글 수: 0
채택된 답변
Star Strider
2019년 8월 24일
You can solve the problem of varying numbers of elements in each iteration by using cell arrays for ‘v’ and ‘d’:
for ii = 1:11
v{ii} = trapz(a(1:ii),k);
end
% calculate the displacement d at each time interval
for jj = 1:11
d{jj} = trapz(v{jj},k);
end
The best solution would likely be to use the cumtrapz function instead, and avoid the loops entirely.
댓글 수: 10
Star Strider
2019년 8월 25일
As always, my pleasure.
I posted the correct code, and didn’t take a close look at yours. I just ran it to see if there were problems, and it ran without error.
추가 답변 (1개)
Kudzanai Sekerere
2019년 8월 25일
댓글 수: 3
Star Strider
2019년 8월 26일
The cumtrapz function is more efficient. I would use it and eliminate the loops.
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!