MATLAB Answers

Stef
0

How to plot the occurency of an element?

Asked by Stef
on 24 Jul 2018
Latest activity Commented on by Paolo
on 24 Jul 2018
I have a vector period, which considers 10 periods. I have another vector a, where some of the periods ocurr multiple times, others only one time and others do not appear. Therefore they do not have the same length. I want to plot the periods on the x-axis and the number of occurrences in a on the y-axis in a bar plot.
period = [1:10];
a = [1 1 1 2 3 3 6 6 6 6 6 7 8 8];
The bar at period 1 should be 3, at period 2 it should be 1, at period 3 it should be 2 and at period 4 it should be zero and so on as you can see from a

  0 Comments

Sign in to comment.

1 Answer

Answer by Paolo
on 24 Jul 2018
Edited by Paolo
on 24 Jul 2018
 Accepted Answer

For the vector a you specified period should be 1:8. Use:
period = [1:8];
a = [1 1 1 2 3 3 6 6 6 6 6 7 8 8];
n = histcounts(a);
bar(period,n)
or do you wish to have 9 and 10 in the graph too?

  4 Comments

Show 1 older comment
Paolo
on 24 Jul 2018
Slightly hacky but you can do something like:
period = [1:8];
a = [1 1 1 2 3 3 6 6 6 6 6 7 8 8];
n = histcounts(a);
bar(period,n)
fig = gcf;
fig.Children.XAxis.TickValues = [1:10];
fig.Children.XLim = [0 10.5];
Guillaume
on 24 Jul 2018
Seems slightly more complicated than it needs to be:
a = [1 1 1 2 3 3 6 6 6 6 6 7 8 8];
histogram(a);
xlim([0.1 10.9]);
Paolo
on 24 Jul 2018
Uh good point Guillaume!

Sign in to comment.