unique values in array

2 次查看(过去 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 中查找有关 Logical 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by