How to group arrays in matrix

6 vues (au cours des 30 derniers jours)
Amy Xu
Amy Xu le 10 Avr 2017
Commenté : Stephen23 le 10 Avr 2017
Matrix A as follows:
A = [
1
1
1
2
2
4
4
7
8
8
9
];
I want to group by matrix A as follows:
B = [
1 3
2 2
4 2
7 1
8 2
9 1
];
  1 commentaire
Stephen23
Stephen23 le 10 Avr 2017
The old fashioned way:
>> U = unique(A);
>> [U,hist(A,U).']
ans =
1 3
2 2
4 2
7 1
8 2
9 1

Connectez-vous pour commenter.

Réponses (2)

Thorsten
Thorsten le 10 Avr 2017
Modifié(e) : Thorsten le 10 Avr 2017
If the second row is the number of occurrences then you can use
[a, ~, c] = unique(A);
B = [a, accumarray(c, 1)];

Guillaume
Guillaume le 10 Avr 2017
A = [1 1 1 2 2 4 4 7 8 8 9]'
B = unique(A);
B = [B, histcounts(A, [B; Inf]).']

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by