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].

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!