Thanks to everyone for the solutions. I actually wrote this terribly
ugly function. Terrible. This should go in the "don't write code like
this section" in clojure book.
(defn md2 [d1 d2 d3 d4 d5]
(let [cnt (count d1)]
(loop [i 0 v []]
(if (= i cnt)
v
(do
(if (=
>> On Wed, Dec 2, 2009 at 6:22 PM, Don 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
(defn min-dist [coll]
(let [minval (reduce min coll)]
(map #(if (= minval %) 1 0) coll)))
this function, if you pass
user=> (min-dist [2 1 2 6 4])
(0 1 0 0 0)
assume the 5 vectors are stored in a b c d e.
user=> (apply map vector (map min-dist (map vector a b c d e)))
([0 0 0 0] [1 0 0 0]
On Wed, Dec 2, 2009 at 7:59 PM, Don wrote:
> 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 retu
On Wed, Dec 2, 2009 at 5:43 PM, Don 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 m
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 determi
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
Forgot to mention that i'm still calculating the minimum distance
between the vectors, but my output isn't actually the minimum value.
The output is the minimum value in terms of the vectors, if that makes
sense.
On Dec 2, 3:22 pm, Don wrote:
> Thank you Stefan and Kevin. Awesome solutions that
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
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
wrote:
> Hi,
>
> On Dec 2, 11:43 pm, Don wrote:
>> I am having difficulty approaching this problem. I'm not sure if it
>> can be done in one swoop, or re
Hi,
On Dec 2, 11:43 pm, Don 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 val
11 matches
Mail list logo