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

18 visualizaciones (últimos 30 días)
preet
preet el 16 de Ag. de 2013
Comentada: Walter Roberson el 28 de Feb. de 2021
i want to scale my values which are in range of [0,360], [-1,1]to [0,1]

Respuestas (5)

Jan
Jan el 28 de Ag. de 2017
Editada: Jan el 28 de Ag. de 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 el 16 de Ag. de 2013
The following scales array x from any range to [0, 1]
scaled = x - min(x);
scaled = scaled / max(scaled);

Alireza Ahani
Alireza Ahani el 28 de Feb. de 2021
check out this function. you can specify also the boundaries.
  1 comentario
Walter Roberson
Walter Roberson el 28 de Feb. de 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.

Iniciar sesión para comentar.


Azzi Abdelmalek
Azzi Abdelmalek el 16 de Ag. de 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 el 14 de Ag. de 2017
Editada: Walter Roberson el 28 de Feb. de 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;
  1 comentario
Jan
Jan el 28 de Ag. de 2017
This works columnwise. I assume the min and max values should concern the complete matrix.

Iniciar sesión para comentar.

Categorías

Más información sobre Characters and Strings en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by