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

16 visualizaciones (últimos 30 días)
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 comentarios
Rik
Rik el 4 de En. de 2022
What have you tried so far? I would try something with unique and ismember, or with histcounts.
ASHA PON
ASHA PON el 4 de En. de 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

Iniciar sesión para comentar.

Respuesta aceptada

KSSV
KSSV el 4 de En. de 2022
Editada: KSSV el 4 de En. de 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 comentario
ASHA PON
ASHA PON el 4 de En. de 2022
Thank you for the support. This is what exactly i needed. The code works fine. Thank you once again

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by