Azzera filtri
Azzera filtri

Normalizing data

6 visualizzazioni (ultimi 30 giorni)
John
John il 21 Dic 2011
Hi there,
How would you normalize a column of data in matlab between 0 and 1 using the formula, z = (x-mean)/standard deviation. Is there a built in function to do this?
Many thanks
John
  1 Commento
Merhan Ahmed
Merhan Ahmed il 25 Gen 2017
zscore function could be used as Z = zscore(X)

Accedi per commentare.

Risposta accettata

Junaid
Junaid il 21 Dic 2011
Dear John,
Lets say you have matrix D and you want to normalize each value of Column to unit length (between 0-1). One possible way is :
D = bsxfun(@rdivide,D,sum(D));
each column will be unit normalized. If you take the sum of each column it will be one.
sum(D)
Do let me know if I understand you correct.
  1 Commento
bym
bym il 23 Dic 2011
zscore from the statistics toolbox does (x-mean)/standard deviation

Accedi per commentare.

Più risposte (3)

Jurgen
Jurgen il 18 Nov 2012
Dividing by the maximum does not correct for offset. So only ranges 0-X go to 0-1. If his column has a negative or nonzero minimum it won't normalize to 0-1.
While the formula for correcting this is simple, mat2gray will normalize to 0-1 for you:
for i = 1:ncol
D(:,i) = mat2gray(D(:,i))
end
You have to decide if you need to normalize before or after your calculation.

VoyageR
VoyageR il 3 Nov 2016
Also don't forget to set your data as double otherwise you will only have 1 or 0 in your normalized vector ; )
double(vectorOfIntergers)

marwa el-hossary
marwa el-hossary il 7 Mag 2018
plz, how can I normalize data of matrix 1x256000 between -0.5 and +0.5 by matlab code
  2 Commenti
Steven Lord
Steven Lord il 7 Mag 2018
Use the normalize function with the 'range' method and a methodtype input.
Nikhil Jahagirdar
Nikhil Jahagirdar il 10 Apr 2019
Does it support MAtlab R2016b?

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by