standard deviation of same values in a matrix
Show older comments
Hello,
I couldn't find anything which could help me with my problem.
I have a matrix (n x 2) like shown below:

I want to calculate the standard deviation of column 2 for all records which have the same valaue in column 1. So I get this:

Is there a smart way to do this? Maybe is several steps?
Thanks!
Answers (2)
the cyclist
on 30 Nov 2015
Edited: the cyclist
on 30 Nov 2015
M = [5 0.30;
5 0.35;
7 0.50;
7 0.51;
9 0.98;
9 0.87;
9 0.71];
[uniqueM,idxToUnique,idxFromUniqueBackToAll] = unique(M(:,1));
S = accumarray(idxFromUniqueBackToAll,M(:,2),[],@std)
stdDevM = [uniqueM,S]
2 Comments
Fabi Boro
on 1 Dec 2015
the cyclist
on 1 Dec 2015
The best form of thanks is accepting the solution, which rewards the person who helped you, and also points future users to good answers.
John D'Errico
on 30 Nov 2015
Edited: John D'Errico
on 30 Nov 2015
0 votes
Categories
Find more on Environmental Engineering in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!