function [time, rate] = instantaneous_rate(spikes, dt, t_max) % Firing rate as the inverse of the interspike interval. % % [time, rate] = instantaneous_rate(spikes, dt, t_max) % % Arguments: % spikes: vector containing the times of the spikes. % dt : the temporal resolutions of the recording. % t_max : the duration of the trial. % % Returns: % the vector representing time and a vector containing the rate. time = 0:dt:t_max-dt; rate = zeros(size(time)); isis = diff([0 spikes]); inst_rate = 1 ./ isis; spike_indices = [1 round(spikes ./ dt)]; for i = 2:length(spike_indices) rate(spike_indices(i-1):spike_indices(i)) = inst_rate(i-1); end end