standard deviation of same values in a matrix

2 vues (au cours des 30 derniers jours)
Fabi Boro
Fabi Boro le 30 Nov 2015
Commenté : the cyclist le 1 Déc 2015
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!

Réponses (2)

the cyclist
the cyclist le 30 Nov 2015
Modifié(e) : the cyclist le 30 Nov 2015
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 commentaires
Fabi Boro
Fabi Boro le 1 Déc 2015
Thank you! works quite well!
the cyclist
the cyclist le 1 Déc 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.

Connectez-vous pour commenter.


John D'Errico
John D'Errico le 30 Nov 2015
Modifié(e) : John D'Errico le 30 Nov 2015
Download consolidator , from the file exchange. One line then.

Community Treasure Hunt

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

Start Hunting!

Translated by