Group repeated values in an array and mention the repeated value with position

5 views (last 30 days)
I need to group the repeated value in an array. After grouping the results should be
group = repeated value
position
Example:
a=[ 6 6 5 6 5 6 6]
Expected result:
group 1 = 5
3 5
group 2 = 6
1 2 4 6 7
Thank you in advance
  2 Comments
ASHA PON
ASHA PON on 4 Jan 2022
This is the code i have tried and results obtained are below
Code:
mxvalue=[6 6 5 6 5 6 6]
[out,i]=sort(maxvalue);
out1=diff(find([1,diff(out)]));
out2=[out1,numel(maxvalue)-sum(out1(:))];
out3=mat2cell(i,1,out2);
celldisp(out3);
Result:
out3{1} =
3 5
out3{2} =
1 2 4 6 7
In this result i'm able to get the positions of repeated value, but the repeated value is not displayed

Sign in to comment.

Accepted Answer

KSSV
KSSV on 4 Jan 2022
Edited: KSSV on 4 Jan 2022
a=[ 6 6 5 6 5 6 6] ;
[c,ia,ib] = unique(a) ;
for i = 1:length(c)
fprintf('Group %d = %d\n',i,c(i))
idx = find(ib==i)' ;
disp(idx)
end
Group 1 = 5
3 5
Group 2 = 6
1 2 4 6 7
  1 Comment
ASHA PON
ASHA PON on 4 Jan 2022
Thank you for the support. This is what exactly i needed. The code works fine. Thank you once again

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!