Re: Functions of Arrays

• To: mathgroup at smc.vnet.net
• Subject: [mg102612] Re: [mg102590] Functions of Arrays
• From: Bob Hanlon <hanlonr at cox.net>
• Date: Mon, 17 Aug 2009 04:01:23 -0400 (EDT)

```v = Array[a, 5];

m = Array[a, {2, 3}];

Define a function to handle a vector

f[v_?VectorQ] := Total[v^2];

f[v]

a[1]^2 + a[2]^2 + a[3]^2 + a[4]^2 + a[5]^2

f /@ m

{a[1, 1]^2 + a[1, 2]^2 + a[1, 3]^2,
a[2, 1]^2 + a[2, 2]^2 + a[2, 3]^2}

Define a function to handle a sequence

g[x__] := Total[{x}^2]

{g[x1], g[x1, x2], g[x1, x2, x3]}

{x1^2, x1^2 + x2^2, x1^2 + x2^2 + x3^2}

f[v] == g[Sequence @@ v]

True

f[{x1, x2, x3}] == g[x1, x2, x3]

True

(f /@ m) == (g[Sequence @@ #] & /@ m )

True

Define a function to handle either a vector or a sequence

h[v_?VectorQ] := Total[v^2]
h[x__] := Total[{x}^2]

h[x1, x2, x3] == h[{x1, x2, x3}] ==
f[{x1, x2, x3}] == g[x1, x2, x3]

True

Alternatively,

h2[x__] := Total[Flatten[{x}]^2]

h[x1, x2, x3] == h[{x1, x2, x3}] ==
h2[x1, x2, x3] == h2[{x1, x2, x3}]

True

Bob Hanlon

---- zak <u.gotzes at googlemail.com> wrote:

=============
Functions can be defined via

f[x1_, x2_] := x1^2 + x2^2

in Mathematica.

But how can I manage it to define a function depending on an array?
I would like to do something like

Array[x,2]
f[x[1]_,x[2]_]:=x[1]^2+x[2]^2

because the length of the array varies in my application.

```

• Prev by Date: Re: Is it possible with Mathematica?big problem.thank you
• Next by Date: Re: Is it possible with Mathematica?big problem.thank you
• Previous by thread: Re: Functions of Arrays
• Next by thread: Generating a list numnber in string format