1 view (last 30 days)

I need to find out what x values are created at certain intervals of t. t is in a matrix of 0:5:55;

clear;

close;

clc;

a = 40*(pi/180);

v = 1200;

g = 32.2;

k=[0,2e-6,10e-6,20e-6];

k=0;

dt=.5;

t = 0:dt:55

vx = v*cos(a)

vy = v*sin(a)

x = zeros(length(t),4);

y = zeros(length(t),4);

x(1,1)=0;

y(1,1)=0;

vx(1,1)=vx;

vy(1,1)=vy;

for j=2:length (t)

x(j,1) = x(j-1,1)+vx(j-1,1)*dt-.5*k*v(j-1,1).^2*cos(a)*dt.^2

y(j,1) = y(j-1,1)+vy(j-1,1)*dt-5*k*v(j-1,1).^2*sin(a)*dt^2-0.5*g*dt.^2

vx(j,1) = vx(j-1,1)-k*v(j-1,1).^2*cos(a)*dt

vy(j,1) = vy(j-1,1)-k*v(j-1,1).^2*sin(a)*dt-g*dt

a=atan(vy(j,1)./vx(j,1))

v(j,1)=vx(j,1).^2+vy(j,1).^2

end

find (x) = 0:5:55

Transferring what I say in my head "find the x values from the equation when t=0:5:55

to the code is what is irking me

per isakson
on 18 Apr 2020

Replace

find (x) = 0:5:55

by

x(1:round(5/dt):end,:)

This should work since 5/dt is a whole number. round takes care of a possible floating point error. When 5/dt isn't a whole number you can use the function interp1()

Opportunities for recent engineering grads.

Apply Today
## 2 Comments

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/518925-how-can-i-find-x-values-given-a-for-command#comment_830510

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/518925-how-can-i-find-x-values-given-a-for-command#comment_830510

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/518925-how-can-i-find-x-values-given-a-for-command#comment_830512

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/518925-how-can-i-find-x-values-given-a-for-command#comment_830512

Sign in to comment.