Passing multiple outputs inside a function
Show older comments
I have been trying to program a function that will evaluate another function:
function [result]=evaluate(second_function,x,y,z)
.
.
.
the problem arises when the second_function has multiple outputs:
function [a,b,c]=second_function(x,yz)
I am clueless as to how to pass each output to the calling function ("evaluate"), so that it can use them for further purposes. I am aware of the nargout function but then I am lost as to how to dynamically assign each output to, say, a vector containing each output in a different row:
function [result]=evaluate(second_function,x,y,z)
v(:)=second_function(x,y,z);
Of course, I could program second_function in a way that the multiple outputs would be compressed in a vector:
function [a]=second_function(x,y,z)
a(1)=...;
a(2)=...;
a(3)=...;
But that adds further complications to the rest of my code.
I have to clarify that second_function is different each time (user defined) and I want the program to dynamically evaluate it.
Accepted Answer
More Answers (1)
Paulo Silva
on 8 Sep 2011
doc varargin
2 Comments
Victor
on 8 Sep 2011
Oleg Komarov
on 8 Sep 2011
You can use varargout and store several outputs in a cell array and pass it to the second functions as out{:}, i.e. "unpacking" the content of the cell array.
Categories
Find more on Variables 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!