function isihist( isis, binwidth )
% plot histogram of interspike intervals
%
% isihist(isis, binwidth)
%   isis: vector of interspike intervals in seconds
%   binwidth: optional width in seconds to be used for the isi bins

    if nargin < 2
        nperbin = 200;  % average number of data points per bin
        bins = length( isis )/nperbin;  % number of bins
        binwidth = max( isis )/bins;
        if binwidth < 5e-4   % half a millisecond
            binwidth = 5e-4;
        end
    end
    bins = 0.5*binwidth:binwidth:max(isis);
    % histogram:
    [ nelements, centers ] = hist( isis, bins );
    % normalization (integral = 1):
    nelements = nelements / sum( nelements ) / binwidth;
    % plot:
    bar( 1000.0*centers, nelements );
    xlabel( 'ISI [ms]' )
    ylabel( 'p(ISI) [1/s]')
    % annotation:
    misi = mean( isis );
    sdisi = std( isis );
    disi = sdisi^2.0/2.0/misi^3;
    text( 0.95, 0.8, sprintf( 'mean=%.1f ms', 1000.0*misi ), 'Units', 'normalized', 'HorizontalAlignment', 'right' )
    text( 0.95, 0.7, sprintf( 'std=%.1f ms', 1000.0*sdisi ), 'Units', 'normalized', 'HorizontalAlignment', 'right' )
    text( 0.95, 0.6, sprintf( 'CV=%.2f', sdisi/misi ), 'Units', 'normalized', 'HorizontalAlignment', 'right' )
    %text( 0.5, 0.3, sprintf( 'D=%.1f Hz', disi ), 'Units', 'normalized' )
end