How to normalize 60x3 vector to zero mean and unit variance

I have vector size of 60x3 in an excel sheet, I need to find the zero mean and unit variance of all the values in that sheet and write back the result into another excel sheet. Can u please help me in writing the code.

 Accepted Answer

New_Array = (The_Array - mean(The_Array(:))) . / var(The_Array(:));
This assumes that the array as a whole is to have zero mean and unit variance, rather than each row or column to independently have zero mean and unit variance. If you want the columns done independently:
(The_Array - repmat(mean(The_Array), size(The_Array,1), 1)) ./ repmat(var(The_array), size(The_Array,1), 1);

7 Comments

It should be
New_Array = (The_Array - mean(The_Array(:))) . / std(The_Array(:));
to get unit variance or unit standard deviation which is the same thing.
D=xlsread('30Aed.xlsx');
New_Array = (D - mean(D(:))) . / std(D(:));
xlswrite('30Anorm',New_Array);
when i write the above code, it is giving an error message: Unexpected MATLAB operator . in line 2.. can u please help me resolve this
New_Array = (D - mean(D(:))) ./ std(D(:));
I was writing on my phone, which loves to add extra spaces :(
I didn't get your answer. can you please write it clearly..
D=xlsread('30Aed.xlsx');
New_Array = (D - mean(D(:))) ./ std(D(:));
xlswrite('30Anorm',New_Array);
The only difference from what you had is to change the ". /" to "./" with no space.
Actually you should divide by the standard deviation (std), not the variance (var)
(The_Array - repmat(mean(The_Array), size(The_Array,1), 1)) ./ repmat(std(The_array), size(The_Array,1), 1);

Sign in to comment.

More Answers (0)

Asked:

on 16 Jun 2015

Commented:

on 15 Aug 2016

Community Treasure Hunt

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

Start Hunting!