       Re: multiple outputs from a function

• To: mathgroup at smc.vnet.net
• Subject: [mg52771] Re: multiple outputs from a function
• From: "Dr. Wolfgang Hintze" <weh at snafu.de>
• Date: Mon, 13 Dec 2004 04:22:12 -0500 (EST)
• References: <cpekeh\$744\$1@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```Ben,

just put the output in a list.
Here's an example which gives the first three powers of a variale x

Definition

In:=
pow[x_] := {x, x^2, x^3}

Execution

In:=
y = pow

Result

Out=
{8, 64, 512}

The specific components of the list can then be extracted one by one
using Part, or [[]]. Example: the second value is

In:=
y[]

Out=
64

Hope this helps,
Wolfgang

Ben Barrowes wrote:

> I feel I must be missing something fundamental...
>
> How do you write a function (or ?) in Mathematica which produces more
> than one output?
>
> Let's say I have some data and I want a single function to calculate the
> mean, variance, std, etc, more than one thing and return those? I know
> that there are builtin functions for those parameters, but the point is
> I want to define functions with more than one output.
>
> The only examples I can find are along the lines of:
>
> f[x_,y_]:=x^2+y^2;
>
> which have only a single result.
>
> Is there a different structure altogether, such as a Subroutine, which
> allows multiple results from a single subunit?
>
> One thought I had was that because Mathematica treats everything as
> global unless defined specifically local (e.g. in a module), that
> variables used in a procedure would be accessible and would thus be a
> "result", but it seems scoping problems would arise if this was used too
> often. For example:
>
> In:=
> t1[x_,y_]:=(a1=x^2+y;a2=x+y^2;x+y)
>
> In:=
> t2=t1[5,6]
>
> Out=
> 11
>
> In:=
> a1
>
> Out=
> 31
>
> In:=
> a2
>
> Out=
> 41
>
> Is this the accepted method for extracting multiple results from one
> function definition?
>
>
> Ben Barrowes
>
>

```

• Prev by Date: Re: multiple outputs from a function
• Next by Date: Re: multiple outputs from a function
• Previous by thread: Re: multiple outputs from a function
• Next by thread: Re: multiple outputs from a function