How can I count the followed occurrences of each element in a vector in MATLAB?

1 view (last 30 days)
lamghari
lamghari on 30 Nov 2015
Commented: lamghari on 30 Nov 2015
Hi, I want to count the number of followed occurrences of each element in a vector.
So if my input is
x = [1 1 1 2 2 1 1 2 5 5]
I need an output
y = [1 2 1 2 5;3 2 2 1 2] How do I do this?

Accepted Answer

Stephen
Stephen on 30 Nov 2015
Edited: Stephen on 30 Nov 2015
Judicious use of diff solves this easily:
x = [1 1 1 2 2 1 1 2 5 5];
f = [find(diff(x)),numel(x)];
y(2,:) = [f(1),diff(f)];
y(1,:) = x(f);
which generates this output:
>> y =
1 2 1 2 5
3 2 2 1 2
  4 Comments

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!