$l2 = 5; $h2 = 15; @data = ( 0.03, 0.1, 0.15, 0.5, 0.7 ); # exponential normalization $l1 = 0.03; $h1 = 0.7; ($l1,$h1) = map { 10**$_ } ($l1,$h1); @normalized = map { $l2 + (10**$_ - $l1) * ($h2 - $l2) / ($h1 - $l1) } @data; print " @normalized \n"; # 5 5.47560740136863 5.86545098040508 10.306017857952 15 # logarithmic normalization $l1 = 0.03; $h1 = 0.7; ($l1,$h1) = map { log($_) } ($l1,$h1); @normalized = map { $l2 + (log($_) - $l1) * ($h2 - $l2) / ($h1 - $l1) } @data; print " @normalized \n"; # 5 8.82227791363971 10.1095165638026 13.9317944774423 15