Clear Filters
Clear Filters

unique values in array

1 view (last 30 days)
Jim O'Doherty
Jim O'Doherty on 9 May 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

Accepted Answer

Grzegorz Knor
Grzegorz Knor on 9 May 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 Comments
Jim O'Doherty
Jim O'Doherty on 9 May 2013
Thanks Grzegorz, that works absolutely perfectly for anything I threw at it
Jim
Grzegorz Knor
Grzegorz Knor on 9 May 2013
And another a little tricky solution:
[diff([0;find(diff([timing;rand()]))]) timing(find(diff([timing;rand()])))]

Sign in to comment.

More Answers (0)

Categories

Find more on Creating and Concatenating Matrices 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!