Normalizing data

17 views (last 30 days)
John
John on 21 Dec 2011
Commented: Nikhil Jahagirdar on 10 Apr 2019
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 Comment
Merhan Ahmed
Merhan Ahmed on 25 Jan 2017
zscore function could be used as Z = zscore(X)

Sign in to comment.

Accepted Answer

Junaid
Junaid on 21 Dec 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 Comment
bym
bym on 23 Dec 2011
zscore from the statistics toolbox does (x-mean)/standard deviation

Sign in to comment.

More Answers (3)

Jurgen
Jurgen on 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 on 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 on 7 May 2018
plz, how can I normalize data of matrix 1x256000 between -0.5 and +0.5 by matlab code
  2 Comments
Steven Lord
Steven Lord on 7 May 2018
Use the normalize function with the 'range' method and a methodtype input.
Nikhil Jahagirdar
Nikhil Jahagirdar on 10 Apr 2019
Does it support MAtlab R2016b?

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!