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

1 view (last 30 days)
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?

Accepted Answer

Bruno Luong
Bruno Luong on 23 Apr 2021
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

More Answers (1)

SungJun Cho
SungJun Cho on 23 Apr 2021
Edited: SungJun Cho on 23 Apr 2021
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].

Community Treasure Hunt

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

Start Hunting!