unique values in array

1 次查看(过去 30 天)
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

采纳的回答

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

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by