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?

3 Ansichten (letzte 30 Tage)
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 Kommentare
Advait Sinha
Advait Sinha am 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]

Melden Sie sich an, um zu kommentieren.

Antworten (2)

sourav  malla
sourav malla am 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 am 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

Kategorien

Mehr zu Multidimensional Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by