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

17 vues (au cours des 30 derniers jours)
preet
preet le 16 Août 2013
Commenté : Walter Roberson le 28 Fév 2021
i want to scale my values which are in range of [0,360], [-1,1]to [0,1]

Réponses (5)

Jan
Jan le 28 Août 2017
Modifié(e) : Jan le 28 Août 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 le 16 Août 2013
The following scales array x from any range to [0, 1]
scaled = x - min(x);
scaled = scaled / max(scaled);

Alireza Ahani
Alireza Ahani le 28 Fév 2021
check out this function. you can specify also the boundaries.
  1 commentaire
Walter Roberson
Walter Roberson le 28 Fév 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.

Connectez-vous pour commenter.


Azzi Abdelmalek
Azzi Abdelmalek le 16 Août 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 le 14 Août 2017
Modifié(e) : Walter Roberson le 28 Fév 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 commentaire
Jan
Jan le 28 Août 2017
This works columnwise. I assume the min and max values should concern the complete matrix.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by