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

9 visualizzazioni (ultimi 30 giorni)
i want to scale my values which are in range of [0,360], [-1,1]to [0,1]

Risposte (5)

Jan
Jan il 28 Ago 2017
Modificato: Jan il 28 Ago 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);

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

Alireza Ahani
Alireza Ahani il 28 Feb 2021
check out this function. you can specify also the boundaries.
  1 Commento
Walter Roberson
Walter Roberson il 28 Feb 2021
Correct.
This function did not exist back when the question was asked, but is a useful function to know now.
In older days, the deceptively named mat2gray() function was the one to call to do the rescaling.

Accedi per commentare.


Azzi Abdelmalek
Azzi Abdelmalek il 16 Ago 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
Abdullah Caliskan il 14 Ago 2017
Modificato: Walter Roberson il 28 Feb 2021
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;

Tag

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by