statistics

12 views (last 30 days)
Malgorzata
Malgorzata on 21 Jan 2012
Edited: Walter Roberson on 15 Oct 2025 at 17:43
how to write a script to calculate means and standard deviations for each columns and use these values in such way to subtract mean of column from each element of column then divide the outcome by standard deviation of column. Repeat that for each column .Then from new matrix to pick maximum element out of each column.
  1 Comment
Walter Roberson
Walter Roberson on 21 Jan 2012
You do not need a loop for any of that. What you do need is to search the MATLAB documentation to find functions to calculate mean and standard deviation.

Sign in to comment.

Answers (2)

Adam Danz
Adam Danz on 15 Aug 2018
Here's an example using fake data named 'data'.
% Fake data
data = randi(9,20,5);
% Calculate mean and std for each column
means = mean(data,1);
sd = std(data, [], 1);
% Subtract mean and divide by std
dataNorm = (data - means) ./ sd;
% Max element from each column
dataNormMax = max(dataNorm, [], 1);
Here's the same thing all in 1 line.
dataNormMax = max((data - mean(data,1)) ./ std(data, [], 1), [], 1);

Darshan
Darshan on 15 Oct 2025 at 13:13
Edited: Walter Roberson on 15 Oct 2025 at 17:43
This answer was flagged by Dyuman Joshi
% Fake data
data = randi(9,20,5);
% Calculate mean and std for each column
means = mean(data,1);
sd = std(data, [], 1);
% Subtract mean and divide by std
dataNorm = (data - means) ./ sd;
% Max element from each column
dataNormMax = max(dataNorm, [], 1);

Tags

Community Treasure Hunt

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

Start Hunting!