Save data from while loop

7 Ansichten (letzte 30 Tage)
Anonymous User
Anonymous User am 5 Jul. 2019
Bearbeitet: madhan ravi am 5 Jul. 2019
How I can save x,y,z data from each irritation and build a matrix ? So I can use them for future work ...
t=0;
while t<100
v=pi/10;
r=6;
dt=0.1;
w=v/r;
t=t+dt;
theta=pi/2;
x=r*sin(theta-w*t)
y=r*cos(theta-w*t)
z=sqrt(10^2-x^2-y^2)
end

Akzeptierte Antwort

per isakson
per isakson am 5 Jul. 2019
Bearbeitet: per isakson am 5 Jul. 2019
Your script overwrites x,y,z for each iteration. You need to assign vectors of appropriate length to x,y,z , (preallocate) before running the loop. Try
t=0;
ix=0;
v=pi/10;
r=6;
dt=0.1;
w=v/r;
x = nan(round(100/dt),1);
y = x;
z = x;
while t<100
ix = ix + 1;
t=t+dt;
x(ix)=r*sin(theta-w*t);
y(ix)=r*cos(theta-w*t);
z(ix)=sqrt(10^2-x^2-y^2);
end
Just to learn how to use a loop, despite it is not neccessary in your example.

Weitere Antworten (1)

madhan ravi
madhan ravi am 5 Jul. 2019
Bearbeitet: madhan ravi am 5 Jul. 2019
You don’t need a loop , simply define t as
t = 0:dt:100;
doc while % to know more about the loop
doc for
and use element wise operation ( https://in.mathworks.com/help/matlab/matlab_prog/array-vs-matrix-operations.html ) meaning * to .* and ^ to .^

Kategorien

Mehr zu Loops and Conditional Statements 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