Re: Matrix Element Extraction
- To: mathgroup at smc.vnet.net
- Subject: [mg46640] Re: [mg46622] Matrix Element Extraction
- From: Tomas Garza <tgarza01 at prodigy.net.mx>
- Date: Thu, 26 Feb 2004 17:53:30 -0500 (EST)
- References: <200402251807.NAA05947@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Well, I must admit you produced an admirably complicated code! Still, it
doesn't give what you want. Try this:
In[1]:=
mat = {{1, 2, 1}, {4, 5, 6}, {7, 8, -Infinity}};
size = Dimensions[mat];
Cases[Position[mat, x_ /; IntegerQ[x]],
y_ /; Length[y] == 2 && First[y] == First[size] ||
Last[y] == Last[size]]
Out[3]=
{{1, 3}, {2, 3}, {3, 1}, {3, 2}}
Tomas Garza
Mexico City
----- Original Message -----
From: "Curt Fischer" <crf3 at po.cwru.edu>
To: mathgroup at smc.vnet.net
Subject: [mg46640] [mg46622] Matrix Element Extraction
> 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.
>
> --
> Curt Fischer
>
>
>
- References:
- Matrix Element Extraction
- From: "Curt Fischer" <crf3@po.cwru.edu>
- Matrix Element Extraction