This repository has been archived on 2021-05-17. You can view files and clone it, but cannot push or open issues or pull requests.
scientificComputing/pointprocesses/code/counthist.m
2014-11-12 18:39:02 +01:00

39 lines
1.1 KiB
Matlab

function [ counts, bins ] = counthist( spikes, w )
% computes count histogram and compare them with Poisson distribution
% spikes: a cell array of vectors of spike times
% w: observation window duration for computing the counts
% collect spike counts:
tmax = spikes{1}(end);
n = [];
r = [];
for k = 1:length(spikes)
for tk = 0:w:tmax-w
nn = sum( ( spikes{k} >= tk ) & ( spikes{k} < tk+w ) );
%nn = length( find( ( spikes{k} >= tk ) & ( spikes{k} < tk+w ) ) );
n = [ n nn ];
end
rate = (length(spikes{k})-1)/(spikes{k}(end) - spikes{k}(1));
r = [ r rate ];
end
% histogram of spike counts:
maxn = max( n );
[counts, bins ] = hist( n, 0:1:maxn+1 );
counts = counts / sum( counts );
if nargout == 0
bar( bins, counts );
hold on;
% Poisson distribution:
rate = mean( r );
x = 0:1:20;
l = rate*w;
y = l.^x.*exp(-l)./factorial(x);
plot( x, y, 'r', 'LineWidth', 3 );
xlim( [ 0 20 ] );
hold off;
xlabel( 'counts k' );
ylabel( 'P(k)' );
end
end