The special variable nargout
is defined inside of all
functions. It indicates how many return values were requested from
the function when it was called. FreeMat allows for
fewer return values to be requested from a function than were declared,
and nargout
can be used to determine exactly what subset of
the functions outputs are required. There is no syntax for
the use of nargout
- it is automatically defined inside
the function body.
Here is a function that is declared to return five
values, and that simply prints the value of nargout
each time it is called.
nargouttest.m function [a1,a2,a3,a4,a5] = nargouttest printf('nargout = %d\n',nargout); a1 = 1; a2 = 2; a3 = 3; a4 = 4; a5 = 5;
--> a1 = nargouttest nargout = 1 a1 = <int32> - size: [1 1] 1 --> [a1,a2] = nargouttest nargout = 2 a1 = <int32> - size: [1 1] 1 a2 = <int32> - size: [1 1] 2 --> [a1,a2,a3] = nargouttest nargout = 3 a1 = <int32> - size: [1 1] 1 a2 = <int32> - size: [1 1] 2 a3 = <int32> - size: [1 1] 3 --> [a1,a2,a3,a4,a5] = nargouttest nargout = 5 a1 = <int32> - size: [1 1] 1 a2 = <int32> - size: [1 1] 2 a3 = <int32> - size: [1 1] 3 a4 = <int32> - size: [1 1] 4 a5 = <int32> - size: [1 1] 5