help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Forcing Variable Outputs


From: Bill Denney
Subject: Re: Forcing Variable Outputs
Date: Tue, 28 Mar 2006 23:11:31 -0500 (EST)

Not exactly. As I tried that, it just gave the output as the same as the input. The problem is that I want this to work correctly (without having to do a lot of if blocks).

function [varargout] = fxn1(varargin)

  nargin
  nargout

  varargout{:} = fxn2(varargin{:});

endfunction

function [varargout] = fxn2(varargin)

  nargin
  nargout

  varargout = {varargin};

endfunction

As it is, if I call

[a b c] = fxn1(1, 2, 3)

I get that nargin for fxn1 is 3, and nargin for fxn2 is 3, but nargout for fxn1 is 3 and nargout for fxn2 is 1.

Bill

On Wed, 29 Mar 2006, Geordie McBain wrote:

Does this do what you want?

 function varargout = fxn1 (varargin)
   varargout = fxn2 (varargin{:});
 endfunction

 function varargout = fxn2 (varargin)
   varargout = {varargin};
 endfunction

I see:

octave2.9:1> a = fxn1 (1)
a = 1
octave2.9:2> [a, b] = fxn1 (1, 2)
a = 1
b = 2


On Tue, 2006-03-28 at 20:53 -0500, Bill Denney wrote:
I have a function that I want to force to have a variable number of output
arguements based on its calling function's number of output arguements.
In other words, I want to do something like

function [varargout] = fxn1(varargin)

   varargout{:} = fxn2(varargin{:});

endfunction

and I want fxn2 to see the same number of output arguements that fxn1
sees.

I thought of initializing varargout like

varargout = cell(1, nargout);

but that didn't work.  Is there a way to do this?

Bill



--
"I love America more than any other country in this world, and, exactly
for this reason, I insist on the right to criticize her perpetually."
  -- James Baldwin



-------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.

Octave's home on the web:  http://www.octave.org
How to fund new projects:  http://www.octave.org/funding.html
Subscription information:  http://www.octave.org/archive.html
-------------------------------------------------------------



reply via email to

[Prev in Thread] Current Thread [Next in Thread]