standard deviation of same values in a matrix

2 次查看(过去 30 天)
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!

回答(2 个)

the cyclist
the cyclist 2015-11-30
编辑:the cyclist 2015-11-30
The accumarray function is designed for this:
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 个评论
the cyclist
the cyclist 2015-12-1
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
John D'Errico 2015-11-30
编辑:John D'Errico 2015-11-30
Download consolidator , from the file exchange. One line then.

类别

Help CenterFile Exchange 中查找有关 Linear Algebra 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by