how to count the number of occurrences of these numbers (with some conditions)

1 回表示 (過去 30 日間)
cgo
cgo 2021 年 4 月 23 日
回答済み: Bruno Luong 2021 年 4 月 23 日
I have A(1,:) = [1, 2, 5, 2 , 1 , 2];
A(2,:) = [0,1,1,0,1,0];
I want to count the unique number of occurences in A(1,:) so this is simply unique(A(1,:)), which will give
[1, 2, 5]
But i want to count/add the number of ones in A(1,:). So I want another output to be this: first element corresponds to the number of 1's for 1. Next, number of 1's for 2, and so on.
[1,1, 1];
How do i do this?

採用された回答

Bruno Luong
Bruno Luong 2021 年 4 月 23 日
A(1,:) = [1, 2, 5, 2 , 1 , 2];
A(2,:) = [0,1,1,0,1,0];
[B,~,J] = unique(A(1,:));
N = accumarray(J(:),A(2,:)');
B = B';
table(B,N)
ans = 3×2 table
B N _ _ 1 1 2 1 5 1

その他の回答 (1 件)

SungJun Cho
SungJun Cho 2021 年 4 月 23 日
編集済み: SungJun Cho 2021 年 4 月 23 日
Hi,
The code below should solve your problem.
A(1,:) = [1,2,5,2,1,2];
A(2,:) = [0,1,1,0,1,0];
uA = unique(A(1,:));
answer = zeros(1,length(uA));
for i = 1:length(uA)
array = A(2,:);
answer(1,i) = sum(array(A(1,:) == uA(i)));
end
Here, "answer" will give you the output [1,1,1] and "uA" the array [1,2,5].

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by