How can I put the value of z in a matrix and later call it as z(1,i) and z(2,i) in the while loop?

1 view (last 30 days)
close all;
dt = 0.1;%time step
u1=1;
u2=1;
c = u2-u1;
u = sign(u2-u1);
z = u*c;
k=0.12;
m=2.21;%initial parameters
v=1;
a=1.4;
tend=1000;
t=0;
i=1
while t < tend-2*dt
vh=v(i)-dt*k*z(i)/ (2*m);
z(i+1) = z(i)+ dt*vh;
%a(i+1)= -k*z(i)/2;
v(i+1)= vh-dt*k*z(i+1)/ (2*m);% + dt*a(i+1)/2;
i = i+1;
t = t + dt
end
plot(z);
  2 Comments
Advait Sinha
Advait Sinha on 26 Jun 2019
Z(2,i)= z(1,i)+dt*vh
Basically z(1,i) and z(2,i) would give the position of the first two coordinates of the linear system represented by the code. Z can be any matrix such that z(:,1) = [0;1]

Sign in to comment.

Answers (2)

sourav  malla
sourav malla on 26 Jun 2019
If you want a matrix of 2 column with changing row values then you can do like this:-
while i<t
Z(2,i)= z(1,i)+dt*vh;
i=i+1
end

Advait Sinha
Advait Sinha on 26 Jun 2019
But then what would happen to the other equations that also make use of z. Also would I need to implement z as a matrix before the while loop too

Categories

Find more on Matrices and Arrays 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!