Count the occurence certain elements based on condition in next column
Show older comments
Hello.
I have a matrix consists of A = [ 1 3 2 2 4 1 2 3 4 1 3] and B = [0 0 -3 0 2 1 4 0 0 -2 0]
How can I determine the occurence of element in A when corresponding value in B is not 0:
C = [
1 2
2 2
3 0
4 1]
Please help me..
Really appreciate it!!
Accepted Answer
More Answers (1)
Ameer Hamza
on 3 Nov 2020
Edited: Ameer Hamza
on 3 Nov 2020
Try this
A = [1 3 2 2 4 1 2 3 4 1 3];
B = [0 0 -3 0 2 1 4 0 0 -2 0];
C = [1:max(A); histcounts(A(B~=0), 'BinMethod', 'integers')].'
9 Comments
Daniar Fahmi
on 4 Nov 2020
Ameer Hamza
on 4 Nov 2020
I am glad to be of help!!!
Daniar Fahmi
on 4 Nov 2020
Edited: Daniar Fahmi
on 4 Nov 2020
Ameer Hamza
on 4 Nov 2020
Can you share your data in a .mat file?
Daniar Fahmi
on 4 Nov 2020
Ameer Hamza
on 4 Nov 2020
Following solution will be more robust
A = dataPD(1,:);
B = dataPD(2,:);
C = [1:max(A); histcounts(A(B~=0), 0.5:1:max(A)+0.5)].'
Daniar Fahmi
on 4 Nov 2020
Bruno Luong
on 4 Nov 2020
Edited: Bruno Luong
on 4 Nov 2020
Attention A of your data contains 82335 0s and they are discarded from counting
Daniar Fahmi
on 4 Nov 2020
Categories
Find more on Variables 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!