How to store values from a loop?

62 Ansichten (letzte 30 Tage)
John Doe
John Doe am 21 Jan. 2014
Kommentiert: Hanna am 25 Jan. 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.

Akzeptierte Antwort

Bruno Pop-Stefanov
Bruno Pop-Stefanov am 21 Jan. 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

Weitere Antworten (2)

Azzi Abdelmalek
Azzi Abdelmalek am 21 Jan. 2014
Bearbeitet: Azzi Abdelmalek am 21 Jan. 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 am 21 Jan. 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 Kommentare
John Doe
John Doe am 21 Jan. 2014
Thank you
Hanna
Hanna am 25 Jan. 2023
Tahnk you Mahdi!

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Tags

Noch keine Tags eingegeben.

Community Treasure Hunt

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

Start Hunting!

Translated by