 
 
 
 
 
 
Re: apparently I don't know how to use Map (or Apply or MapThread)
- To: mathgroup at smc.vnet.net
- Subject: [mg77361] Re: apparently I don't know how to use Map (or Apply or MapThread)
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Thu, 7 Jun 2007 03:53:34 -0400 (EDT)
- Organization: Uni Leipzig
- References: <f4676i$1n3$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
Hi,
you mean
Table[#[[i, i]], {i, Length[#]}] &@ m
or with (Mathematica 6.0)*
Diagonal[m]
or if you whant to use Map*[]
Reap[MapIndexed[If[Equal @@ #2, Sow[#1]] &, m, {2}]][[2, 1]]
or
First /@ MapIndexed[RotateLeft[#1, #2[[1]] - 1] &, m]
or
MapIndexed[ #1[[#2[[1]]]] &, m]
or
MapIndexed[ First @ Take[#1, #2] &, m]
Regards
   Jens
dbsearch04 at yahoo.com wrote:
> I started with this:
> 
> m = {{0.098, 0.951, 0.954}, {0.509, 0.914, 0.487}}
> 
> I tried to do this
> 
> Table[#[[i, i]], {i, Length[#]}] & /@ m
> 
> It does not work, but this works
> 
> Diag := Function[x, Table[x[[i, i]], {i, Length[x]}]]; Diag[m]
> 
> !@#$%^&*(
> 
> Can anyone tell me why? I also tried: Apply, MapThread,
> DiagonalMatrix, TakeMatrix, adding () around the pure function...
> 
> I know that this is a simple problem. Would Evaluate help?
> 
> TIA.
> 
> Regards..
> 
> 

