How to store values from a loop?
303 次查看(过去 30 天)
显示 更早的评论
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.
0 个评论
采纳的回答
Bruno Pop-Stefanov
2014-1-21
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
0 个评论
更多回答(2 个)
Azzi Abdelmalek
2014-1-21
编辑:Azzi Abdelmalek
2014-1-21
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
2014-1-21
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
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!