MATLAB: How to map data from [min1 max1] into [min2 max2]

dataimage analysisprogrammingstatistics

I have an array data as for example : [ .3 .5 .8 .1 0], where min1=0 and max1=0.8. Now I would like to map the into the another range where min2=0 and max2=500.

Best Answer

You can use interp1 function, like:
r1 = [0 0.8]; % Input range
r2 = [0 500]; % Output range
vIn = [0.3 0.5 0.8 0.1 0]; % Your vector
vOut = arrayfun(@(x) interp1(r1,r2,x),vIn);