How to store values from a loop?

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.

 採用された回答

Bruno Pop-Stefanov
Bruno Pop-Stefanov 2014 年 1 月 21 日

3 投票

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

その他の回答 (2 件)

Azzi Abdelmalek
Azzi Abdelmalek 2014 年 1 月 21 日
編集済み: Azzi Abdelmalek 2014 年 1 月 21 日

2 投票

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)

1 件のコメント

Alvina Khairun Nisa
Alvina Khairun Nisa 2017 年 5 月 23 日
how to save celldisp(sol) to file.mat?

サインインしてコメントする。

Mahdi
Mahdi 2014 年 1 月 21 日

2 投票

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 件のコメント

John Doe
John Doe 2014 年 1 月 21 日
Thank you
Hanna
Hanna 2023 年 1 月 25 日
Tahnk you Mahdi!

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

タグが未入力です。

質問済み:

2014 年 1 月 21 日

コメント済み:

2023 年 1 月 25 日

Community Treasure Hunt

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

Start Hunting!

Translated by