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)
- Reply-to: hanlonr at cox.net
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.