Finding Maxima in tensors
- To: mathgroup at smc.vnet.net
- Subject: [mg34625] Finding Maxima in tensors
- From: "Johannes Ludsteck" <johannes.ludsteck at wiwi.uni-regensburg.de>
- Date: Thu, 30 May 2002 02:55:06 -0400 (EDT)
- Organization: Universitaet Regensburg
- Sender: owner-wri-mathgroup at wolfram.com
I have a rank 4 tensor p and a matrix z. My task is
to find the maxima of the vectors
p[a,b,All,d] + z[[a]]
for all a,b, and d (a,b, and d are simply indices)
and collect them in a rank 3 tensor.
Here is my implementation:
opt[p_,z_]:=Block[{a,b,d,dima,dimb,dimc,dimd},
{dima,dimb,dimc,dimd}=Dimensions[p];
Table[
Max[MapThread[Plus,
{p[[a,b,All,d]],z[[a]]}]],
{a,dima},{b,dimb},{d,dimd}]]
(Of course, the dimensions of p and z do match, i.e.
Dimensions[p][[{1,3}]]==Dimensions[z].)
The implemtation works but seems to be awkward.
Since I have to apply the maximum search for tensors of
even higher rank and opt[...] is evaluated some thousand times,
a more concise implementation would help.
I feel that the problem should have a shorter and simpler
Mathematica code representation, but I cannot find it.
Any suggestions?
Best regards,
Johannes Ludsteck
<><><><><><><><><><><><>
Johannes Ludsteck
Economics Department
University of Regensburg
Universitaetsstrasse 31
93053 Regensburg
Phone +49/0941/943-2741