Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

Normalizing data

Asked by John

John

on 21 Dec 2011
Accepted Answer by Junaid

Junaid

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

0 Comments

John

John

Tags

Products

No products are associated with this question.

2 Answers

Answer by Junaid

Junaid

on 21 Dec 2011
Accepted answer

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

Junaid

Junaid

Answer by 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.

0 Comments

Jurgen

Jurgen

Contact us