Re: multiple outputs from a function
- To: mathgroup at smc.vnet.net
- Subject: [mg52785] Re: [mg52753] multiple outputs from a function
- From: yehuda ben-shimol <benshimo at bgu.ac.il>
- Date: Mon, 13 Dec 2004 04:22:40 -0500 (EST)
- References: <200412111022.FAA06563@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
A function can return only one expression. In order to use an expression that holds several results it should be a List (not necessarily, but a common practice) So, for a function f operating on a list of data elements use something similar to f[mydata_List]:={Mean[mydata], Var[mydata], Sqrt/@mydata, ...... (*as many as you wish*) } yehuda 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[67]:= >t1[x_,y_]:=(a1=x^2+y;a2=x+y^2;x+y) > >In[68]:= >t2=t1[5,6] > >Out[68]= >11 > >In[69]:= >a1 > >Out[69]= >31 > >In[70]:= >a2 > >Out[70]= >41 > >Is this the accepted method for extracting multiple results from one >function definition? > > >Ben Barrowes > > >
- References:
- multiple outputs from a function
- From: Ben Barrowes <barrowes@alum.mit.edu>
- multiple outputs from a function