MathGroup Archive 2004

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Matrix Element Extraction

  • To: mathgroup at smc.vnet.net
  • Subject: [mg46642] Re: Matrix Element Extraction
  • From: Dr Bob <drbob at bigfoot.com>
  • Date: Thu, 26 Feb 2004 17:53:34 -0500 (EST)
  • Reply-to: drbob at bigfoot.com
  • Sender: owner-wri-mathgroup at wolfram.com

How's this:

selector[(a_)?MatrixQ] := Module[{rows, cols},
    {rows, cols} = Dimensions[a];
    Cases[Position[a, _Integer], {_, cols} | {rows, _}]]
selector[{{1, 2, 1}, {4, 5, 6}, {7, 8, -Infinity}}]
selector[{{1, 2, 1}, {4, 5, 6}, {7, 8, -Infinity}, {2, 1, 3}}]

{{1, 3}, {2, 3}, {3, 1}, {3, 2}}
{{1, 3}, {2, 3}, {4, 1}, {4, 2}, {4, 3}}

Bobby

"Curt Fischer" <crf3 at po.cwru.edu> wrote in message 
news:<c1irc0$6bn$1 at smc.vnet.net>...
> In a matrix, I want to find the positions of all the integer elements in 
> the
> rightmost column or the bottom row.
>
> In[1]:=
> mat={{1,2,1},{4,5,6},{7,8,-Infinity}}
>
> Out[1]=
> {{1,2,1},{4,5,6},{7,8,-Infinity}}
>
> In[2]:=
> Position[Map[((MemberQ[Union[Flatten[{mat[[Length[mat]]],
>                 mat[[All,Dimensions[mat][[
>                       2]] ]]}]],#])&&(#!=-Infinity))&,mat,{2}],True]
>
> Out[2]=
> {{1,1},{1,3},{2,3},{3,1},{3,2}}
>
> This _mostly_ does what I want, but took me forever to think of.  I'm
> convinced there must be an easier way...
>
> Especially, is there an easy way to keep the point {1,1} from appearing 
> on
> this
> list, other than using a replacement rule and an If[] command?  ({1,1} is
> not a position in the bottom row or right most column, so I don't want 
> this
> point returned.)
>
> Thanks for any advice.




  • Prev by Date: Re: Matrix Element Extraction
  • Next by Date: Re: Matrix Element Extraction
  • Previous by thread: Re: Matrix Element Extraction
  • Next by thread: RE: Matrix Element Extraction