how to scale the array type double of range [-1,1] to [0,1] and [0,360] to[0,1]

138 views (last 30 days)
preet on 16 Aug 2013
Edited: Jan on 28 Aug 2017
i want to scale my values which are in range of [0,360], [-1,1]to [0,1]

Jan on 16 Aug 2013
The following scales array x from any range to [0, 1]
scaled = x - min(x);
scaled = scaled / max(scaled);

Jan on 28 Aug 2017
Edited: Jan on 28 Aug 2017
The general method to scale any input array (vector, matrix, multi-dim array) to the range [0, 1] is:
maxV = max(V(:));
minV = min(V(:));
Vs = (V - minV) / (maxV - minV);

Azzi Abdelmalek on 16 Aug 2013
a=-1:0.1:1
b=a-min(a)
e=max(a)-min(a)
out=b/e
% you can use the same code for all cases

Abdullah Caliskan on 14 Aug 2017
if input is matrix, you can use this. upper, bottom
xmax =max(input); xmin =min(input); A=bsxfun(@minus,input,xmin); B=bsxfun(@rdivide,A,(xmax-xmin)); cikis=B*(upper-bottom)+bottom;

1 Comment

Jan on 28 Aug 2017
This works columnwise. I assume the min and max values should concern the complete matrix.