MATLAB Answers

Indexing how many times is an element repeated in a matrix in another array

1 view (last 30 days)
Ningct12 on 19 Nov 2019
Commented: Ningct12 on 20 Nov 2019
Sorry if the wording in the title doesn't make sense. I'm still a noob to MATLAB.
Let's say I have an experiment order of A = [1 2 1 2 3 2 3 3 1].
I would like to make another array counting how many times each task is repeated in A.
The expected outcome would be B = [1 1 2 2 1 3 2 3 3].
Particularly, when 1 appeared the 2nd time in A(3), B(3) = 2. When 1 appeared the 3nd time in A(9), B(9)= 3. Same applies for the other numbers.
How can I achieve this? Any help is much appreciated. Thank you!


Sign in to comment.

Accepted Answer

Erivelton Gualter
Erivelton Gualter on 19 Nov 2019
The following piece of code solve your problem:
arr = unique(A);
for i=1:length(arr)
n = arr(i);
B(A==n) = 1:length(find(A==n));
Next time, try to show some attempt code ;)

  1 Comment

Ningct12 on 20 Nov 2019
I was orginally planning to count them in a for loop using counter+1, but your method is much better! Thank you for your help! :)

Sign in to comment.

More Answers (0)

Sign in to answer this question.