MATLAB: How to determine and plot a probability density function

helpMATLABpdfplotprobability density

I have a vector (8760 x 1) with the hourly electricity prices in a network and another vector (8760 x 1) with the quantity of electricity sold in each hour. I want to know how to get and plot the probability density function of that data. As an example, here are the first eleven elements of each vector:
Prices = [44.2200; 45.1300; 46.2300; 47.9100; 49.5700; 48.6900; 47.2000; 46.5100; 46.5200; 51.5900; 59.0700];
SoldElectricity = [0; 0; 0; 2.1255; 1.9807; 1.8474; 1.0561; 0; 0; 0.3586; 6.0510];
And I want to get a plot like this as a result:
(In the image three different sold electricity vectors were plotted, in my case, I only need to plot one) Any help would be appreciated, thanks!

Best Answer

The discretize function will do most of the job. You may have to play around with it a bit, but something like this should work:
bins = 43.5:1:60.5; % define some bins that cover the range of interest
assignments = discretize(Prices,bins); % get a vector telling you which bin each price is in
% compute how much was sold in each bin
bintotals = zeros(size(bins));
for ibin=1:numel(bins)
bintotals(ibin) = sum(SoldElectricity(assignments==ibin));
end
binprobs = bintotals / sum(bintotals); % compute the proportion of the total in each bin
plot(bins,binprobs);