I still can't figure it out.  If have this set.

 a [2 4 6 7]
 b [1 3 9 2]
 c [2 4 5 6]
 d [6 1 3 8]
 e [4 8 2 1]

If I do (reduce min (map #(get % 0) (list a b c d e)))

It grabs the min value from index 0 of the five vectors and returns 1
corresponding to 'b'. But I'm not sure how I would determine it's
coming from 'b'.  I need to know that it comes from 'b' in order to
build the new vector.

If I do (vec (map min a b c d e))

It grabs the min value from index (0, 1, 2, 3) and puts it in a vector

[1 1 2 1]

And I don't know from what vector the minimum value is coming from.

The solution is probably already here but I can't think of it.  Sorry.


On Dec 2, 3:40 pm, Wilson MacGyver <wmacgy...@gmail.com> wrote:
> assuming, vector a b c d e are already defined.
>
> I'd do
>
> user=> (map vector a b c d e)
> ([2 1 2 6 4] [4 3 4 1 8] [6 9 5 3 2] [7 2 6 8 1])
>
> you can then use the solutions provided from previous messages
> to find the min value of each vector.
>
> so you then end up with
>
> [0 1 0 0 0] [0 0 0 1 0] [0 0 0 0 1] [0 0 0 0 1]
>
> at that point, you repeat the same trick
>
> (map vector [0 1 0 0 0] [0 0 0 1 0] [0 0 0 0 1] [0 0 0 0 1])
>
> and that will give you
>
> [0 0 0 0] [1 0 0 0] [0 0 0 0] [0 1 0 0] [0 0 1 1]
>
>
>
>
>
> On Wed, Dec 2, 2009 at 6:22 PM, Don <josereyno...@gmail.com> wrote:
> > Thank you Stefan and Kevin.  Awesome solutions that answer my
> > question.  However I actually made a mistake in posing my question.
> > Let me attempt to ask my question again.
>
> >  I have 5 vectors as such:
> >  a [2 4 6 7]
> >  b [1 3 9 2]
> >  c [2 4 5 6]
> >  d [6 1 3 8]
> >  e [4 8 2 1]
>
> > and the output i want is this
>
> > a1 [0 0 0 0]
> > b1 [1 0 0 0]
> > c1 [0 0 0 0]
> > d1 [0 1 0 0]
> > e1 [0 0 1 1]
>
> > Now I'm not sure if it can  be done in one swoop, or should be done in
> > a loop.  I was thinking a loop, but I'm having trouble thinking about
> > it.
>
> > I initially thought of creating a function that takes in 5 vectors and
> > returns a single vector.  So the first time its called it  would
> > return a1 [0 0 0 0] then call it again and return b1 [1 0 0 0] etc...
> > I know it will repeat calculations however I couldn't come up with
> > anything else.
>
> > Thank you.
>
> > On Dec 2, 2:55 pm, Kevin Downey <redc...@gmail.com> wrote:
> >> user=> (vec (map min [2 4 6 7] [1 3 9 2] [2 4 5 6] [6 1 3 8] [4 8 2 1]))
> >> [1 1 2 1]
> >> user=>
>
> >> On Wed, Dec 2, 2009 at 2:53 PM, Stefan Kamphausen
>
> >> <ska2...@googlemail.com> wrote:
> >> > Hi,
>
> >> > On Dec 2, 11:43 pm, Don <josereyno...@gmail.com> wrote:
> >> >> I am having difficulty approaching this problem.  I'm not sure if it
> >> >> can be done in one swoop, or requires a few steps.
>
> >> >> I have 5 vectors as such:
>
> >> >> a [2 4 6 7]
> >> >> b [1 3 9 2]
> >> >> c [2 4 5 6]
> >> >> d [6 1 3 8]
> >> >> e [4 8 2 1]
> >> >> And I want to take the minimum value at a given index between the
> >> >> vectors.  Therefore, minimum value at index 0 would yield the value 1
> >> >> from vector b.
>
> >> > a quick shot would be
>
> >> > (reduce min (map #(get % 0) (list a b c d e)))
>
> >> > It would be nicer to have a vector of vectors or a list of vectors at
> >> > the beginning, probably.
>
> >> > Cheers,
> >> > Stefan
>
> >> > --
> >> > You received this message because you are subscribed to the Google
> >> > Groups "Clojure" group.
> >> > To post to this group, send email to clojure@googlegroups.com
> >> > Note that posts from new members are moderated - please be patient with 
> >> > your first post.
> >> > To unsubscribe from this group, send email to
> >> > clojure+unsubscr...@googlegroups.com
> >> > For more options, visit this group at
> >> >http://groups.google.com/group/clojure?hl=en
>
> >> --
> >> And what is good, Phaedrus,
> >> And what is not good—
> >> Need we ask anyone to tell us these things?
>
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Clojure" group.
> > To post to this group, send email to clojure@googlegroups.com
> > Note that posts from new members are moderated - please be patient with 
> > your first post.
> > To unsubscribe from this group, send email to
> > clojure+unsubscr...@googlegroups.com
> > For more options, visit this group at
> >http://groups.google.com/group/clojure?hl=en
>
> --
> Omnem crede diem tibi diluxisse supremum.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to