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

9 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
Rik
Rik on 4 Jan 2022
What have you tried so far? I would try something with unique and ismember, or with histcounts.
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

More Answers (0)

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!