MathGroup Archive 2005

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

Search the Archive

Re: comparing two lists

  • To: mathgroup at smc.vnet.net
  • Subject: [mg54321] Re: [mg54284] comparing two lists
  • From: "David Park" <djmp at earthlink.net>
  • Date: Thu, 17 Feb 2005 10:30:41 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

Curt,

Here is one solution. You will probably get better.

rowPositions[mat_?MatrixQ, vec_?VectorQ] /;
    First[Dimensions[mat]] == Length[vec] :=
  Module[{row, element},
    Table[row = Part[mat, i]; element = Part[vec, i];
      If[Part[row, j] > element, Part[Position[row, Part[row, j]], 1, 1],
        Unevaluated[Sequence[]]], {i, 1, Length[vec]}, {j, 1,
        Last[Dimensions[mat]]}]]

vec = Table[Random[], {2}]
{0.688775, 0.554987}

mat = Table[Table[Random[], {4}], {2}]
{{0.768502, 0.993643, 0.474089, 0.328082}, {0.0175592, 0.671364, 0.461452,
    0.37211}}

rowPositions[mat, vec]
{{1, 2}, {2}}

David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/




From: Curt Fischer [mailto:tentrillion at gmail.NOSPAM.com]
To: mathgroup at smc.vnet.net


Dear Group:

I want to write a function that accepts a n-vector and an n x m matrix.
It should return a list of positions in the matrix where mat[[i,j]] >
vec[[i]].  For example,

In[287]:=
vec=Table[Random[],{2}]

Out[287]=
{0.482259,0.314393}

In[288]:=
mat=Table[Table[Random[],{4}],{2}]

Out[288]=
{{0.183706,0.758693,0.462242,0.170041},{0.457054,0.349658,0.805455,0.127763}
}

I would like myFunc[] to return {{2},{1,2,3}}.

How could I write this as a pure function?  Ideally I would like to be
able to Map or Apply my function to the list {mat, vec} and get my result.

Something like

Position[#1,_?(#>#2&)]&@@{mat,vec}

is doomed to fail because the PatternTest required in Position[] messes
up the slotting of the other arguments.

Ideas?  How do you nest pure functions?

--
Curt Fischer




  • Prev by Date: Re: comparing two lists
  • Next by Date: Re: Re: Bug Report - Two numerical values for a same variable
  • Previous by thread: Re: comparing two lists
  • Next by thread: FW: comparing two lists