How to group arrays in matrix

1 回表示 (過去 30 日間)
Amy Xu
Amy Xu 2017 年 4 月 10 日
コメント済み: Stephen23 2017 年 4 月 10 日
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 件のコメント
Stephen23
Stephen23 2017 年 4 月 10 日
The old fashioned way:
>> U = unique(A);
>> [U,hist(A,U).']
ans =
1 3
2 2
4 2
7 1
8 2
9 1

サインインしてコメントする。

回答 (2 件)

Thorsten
Thorsten 2017 年 4 月 10 日
編集済み: Thorsten 2017 年 4 月 10 日
If the second row is the number of occurrences then you can use
[a, ~, c] = unique(A);
B = [a, accumarray(c, 1)];

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

カテゴリ

Help Center および File ExchangeResizing and Reshaping Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by