How to store values from a loop?

373 visualizzazioni (ultimi 30 giorni)
John Doe
John Doe il 21 Gen 2014
Commentato: Hanna il 25 Gen 2023
I have a .m function file of Y(x,y), and the fzero command below to find the zero for varying values of y:
if true
for y= 2:0.1:10
x = fzero(@(m) Y(m,y),4);
end
end
however after each loop, the previous value is overwritten, is there a way I can save them all?
Kind Regards,
John.

Risposta accettata

Bruno Pop-Stefanov
Bruno Pop-Stefanov il 21 Gen 2014
Store them in a vector using an index like in the following:
y = 2:0.1:10;
% For all elements in vector y
for i=1:numel(y)
% Set ith element of vector x
x(i) = fzero(@(m) Y(m,y(i)),4);
end

Più risposte (2)

Azzi Abdelmalek
Azzi Abdelmalek il 21 Gen 2014
Modificato: Azzi Abdelmalek il 21 Gen 2014
ii= 2:0.1:10
sol=cell(numel(ii),1)
for y=ii
x = fzero(@(m) Y(m,y),4);
sol{y}=x;
end
celldisp(sol)

Mahdi
Mahdi il 21 Gen 2014
There are two ways to do this, the following is the less efficient way
x=[];
if true
for y=2:0.1:10
x=[x; fzero(@(m) Y(m,y),4)];
end
end
Basically, the above code will store all the values in each loop in a matrix x. You can also preallocate and create a matrix by using x(i)=rest of it
i=1
for loop
x(i)=
i=i+1;
end
  2 Commenti
John Doe
John Doe il 21 Gen 2014
Thank you
Hanna
Hanna il 25 Gen 2023
Tahnk you Mahdi!

Accedi per commentare.

Categorie

Scopri di più su Unit Conversions in Help Center e File Exchange

Tag

Non è stata ancora inserito alcun tag.

Community Treasure Hunt

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

Start Hunting!

Translated by