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

18 Ansichten (letzte 30 Tage)
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 Kommentare
Rik
Rik am 4 Jan. 2022
What have you tried so far? I would try something with unique and ismember, or with histcounts.
ASHA PON
ASHA PON am 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

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

KSSV
KSSV am 4 Jan. 2022
Bearbeitet: KSSV am 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 Kommentar
ASHA PON
ASHA PON am 4 Jan. 2022
Thank you for the support. This is what exactly i needed. The code works fine. Thank you once again

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by