How do I locate the most repeated elements in an array/vector?

6 visualizaciones (últimos 30 días)
Sebastian
Sebastian el 18 de Jul. de 2023
Comentada: Sebastian el 23 de Jul. de 2023
For example, we have an array
a = [1 1 1 0 1 1 0 2 2 2]
Given an input of this array, how can I find the number(s) in the array that is/are repeated consecutively most often? i.e. return:
[1 2]
New to matlab and not sure how to do this.

Respuestas (2)

Bruno Luong
Bruno Luong el 18 de Jul. de 2023
Editada: Bruno Luong el 18 de Jul. de 2023
a = [1 1 1 0 1 1 0 2 2 2];
i = find([true diff(a)~=0 true]);
n = diff(i);
j = find(n == max(n));
b = a(i(j))
b = 1×2
1 2
  1 comentario
Sebastian
Sebastian el 23 de Jul. de 2023
This seems to work really well, and I've taken the time to really understand it as a new user of MATLAB.
However, I'm getting some sort of horzcat error in Cody's test suite. In my own live script I get my expected answer and I don't get any sort of error. Know what might be going on?

Iniciar sesión para comentar.


Matt J
Matt J el 18 de Jul. de 2023
Editada: Matt J el 18 de Jul. de 2023

Categorías

Más información sobre Data Distribution Plots 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