n = 10000;                    % number of action potentials
T = 100.0;                    % total time interval
spikes = sort(T*rand(n, 1));  % sorted times of action potentials
isis = diff(spikes);          % interspike intervals
rate = n/T;                   % firing rate
misi = mean(isis);            % mean interspike interval
sisi = std(isis);             % and standard deviation
fprintf('firing rate = %.1fHz\n', rate);
fprintf('   mean ISI = %.1fms\n', 1000.0*misi);  % inverse of rate
fprintf('    std ISI = %.1fms\n', 1000.0*sisi);  % same as mean
hist(1000.0*isis, 50);        % exponential distribution
xlabel('ISI [ms]');
ylabel('count');