Let me start by generating a small sample from a table like yours, for demonstration:
table = Array[Through[{i, j, k}[#]] &, 2]
(* Out:
{{i[1], j[1], k[1]}, {i[2], j[2], k[2]}}
*)
In my view, perhaps the most immediately readable approach to your problem might be the following:
{f[##], g[##], h[##]}& @@@ table
(* Out:
{{f[i[1], j[1], k[1]], g[i[1], j[1], k[1]], h[i[1], j[1], k[1]]},
{f[i[2], j[2], k[2]], g[i[2], j[2], k[2]], h[i[2], j[2], k[2]]}}
*)
You will want to take a look at the docs for Apply
if this syntax or the equivalent Apply[function, input, {1}]
are unfamiliar to you.
A more compact way to generate that functional expression is the following, as suggested by @kglr in comments:
Through[{f, g, h}[##]]& @@@ table
You can convince yourself that the Through
expression essentially generates a functional form equivalent to the one I first proposed above as follows:
Evaluate[ Through[{f, g, h}[##]] ] &
(* Out: {f[##1], g[##1], h[##1]} & *)
where ##1
is equivalent to ##
(see SlotSequence
).
Through /@ {f, g, h} /@ {{i1, j1, k1}, {i2, j2, k2}}
? $\endgroup$Through[{f,g,h}@##]&@@@{{i1, j1, k1}, {i2, j2, k2}}
orThrough[{f, g, h} @@ #] & /@ {{i1, j1, k1}, {i2, j2, k2}}
$\endgroup$Through[{f,g,h}@##]&@@@yourTable
should transform each triple{i,j,k}
to{f[i,j,k],g[i,j,k],h[i,j,k]}
. How it works: (1)Through[{f, g, h}@arg]
gives{f[arg],g[arg],h[arg]
. (2) The form@@@
is short forApply at level 1
(see Apply). So,foo@@@{{a,b,c},{u,s,t},{v,w,z}}
gives{foo[a,b,c],foo[u,s,t],foo[v,w,z]}
. ((In contrast,Map
ingfoo
on the same list,foo/@{{a,b,c},{u,s,t},{v,w,z}}
gives{foo[{a,b,c}], foo[{u,s,t}],foo[{v,w,z}]}
). $\endgroup$