kevin parks wrote:
> hi,
> 
> Seems my post added much confusion. Sorry... I was hoping not to have 
> to post my code since it is really wrong and slightly embarrassing.. 

I think the confusion was about what input range to use. From your code 
it looks like you want to use just the actual range of input values.

> what i am trying to do is map an input range of values to output range. 
> I was hoping to make it a bit of an all purpose utility that would map 
> pretty much any input range to an output range, also do inverted 
> mapping... and also handle negative numbers and perhaps even a flag for 
> exponential mapping.
> 
> import random
> 
> def scaleX(in_seq, low, hi):
>       range1 = max(in_seq) - min(in_seq)
>       #range2 = max(out_seq) - min(outseq)
>       range2 = hi - low
>       ratio = range1/range2
>       return [(x * ratio) for x in in_seq]            

This is actually pretty close. You have ratio backwards and you need to 
account for the offsets min(in_seq) and low. Try
   in_low = min(in_seq)
   ratio = range2/range1
   return [ ((x-in_low) * ratio + low) for x in in_seq ]

Kent

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to