Borrar filtros
Borrar filtros

unique values in array

1 visualización (últimos 30 días)
Jim O'Doherty
Jim O'Doherty el 9 de Mayo de 2013
Hi all,
I'm sure this is probably very easy but I can't seem to crack it. I've got an array like so:
timing =
10
5
5
5
5
5
5
5
5
5
5
10
10
10
10
10
10
20
20
20
60
60
60
60
60
30
30
10];
I'd like to produce a table of the data which shows the number of entries, i.e.
1 x 10
10 x 5
6 x 10
3 x 20
5 x 60
3 x 30
1 x 10
This array changes length (and values) each time I run my code.
Using the "unique" command would have this done in a line of code, but the fact that same value repeats itself later in the array is making it a lot more hassle!
Any help greatly appreciated
Thanks Jim

Respuesta aceptada

Grzegorz Knor
Grzegorz Knor el 9 de Mayo de 2013
Simply idea is to use loop:
f = [1 , timing(1)];
for k=2:numel(timing)
if timing(k)~=timing(k-1)
f(end+1,2)=timing(k);
end
f(end,1) = f(end,1)+1;
end
  2 comentarios
Jim O'Doherty
Jim O'Doherty el 9 de Mayo de 2013
Thanks Grzegorz, that works absolutely perfectly for anything I threw at it
Jim
Grzegorz Knor
Grzegorz Knor el 9 de Mayo de 2013
And another a little tricky solution:
[diff([0;find(diff([timing;rand()]))]) timing(find(diff([timing;rand()])))]

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

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

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by