Storing Outputs of a two output function recursion

Is there a method where I can apply a function with two outputs, and iterate the function recursively for these two outputs. In other words, I want this function to be applied on both outputs of this function until satisfying a condition(in a while loop),
UPDATE:I tried the recursion provided here by Image analyst ,https://www.mathworks.com/matlabcentral/answers/47182-problem-in-recursive-function, it worked well, but I want to keep storing all the outputs in 1 cell structure, is it possible?

1 Comment

I tried the answer provided here by Image analyst ,https://www.mathworks.com/matlabcentral/answers/47182-problem-in-recursive-function, it worked well, but I want to keep storing all the outputs in 1 cell structure, is it possible

Sign in to comment.

 Accepted Answer

Yes. There is no limitation on the number of outputs for recursive function.

4 Comments

But how I can store all the outputs in one array
Like this? It is not a recursive fuction. Just while-loop
x=100;y=200;
k=0;
while x>1e-3 && y>1e-4
k=k+1
[x,y]=D23(x,y);
end
x
y
function [x,y]=D23(x,y)
x=x/2;
y=y/3;
end
no I want to store all the outputs coming of the recursion function. In each iteration of the recursive function, the two outputs should be stored in an cell structure containing all previous otputs too.
Then it is not really an issue related to recursion. It is just storing data. The only thing to take care of is to declare a big enough arry or cell because the number of iteration is not determined. You can remove the un-used array space at the end.
x=100;y=200;
k=0;
result=ones(100,2);
while x>1e-3 && y>1e-4
k=k+1
[x,y]=D23(x,y);
result(k,:)=[x,y];
end
result(k+1:end,:)=[]
function [x,y]=D23(x,y)
x=x/2;
y=y/3;
end

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!