function rasterplot(spikes, tmax) % Display a spike raster of the spike times given in spikes. % % rasterplot(spikes, tmax) % % Arguments: % spikes: a cell array of vectors of spike times in seconds % tmax: plot spike raster up to tmax seconds in_msecs = tmax < 1.5; spiketimes = []; trials = []; ntrials = length(spikes); for k = 1:ntrials times = spikes{k}; times = times(times<tmax); if in_msecs times = 1000.0*times; % conversion to ms end % (x,y) pairs for start and stop of stroke % plus nan separating strokes: spiketimes = [spiketimes, ... [times(:)'; times(:)'; times(:)'*nan]]; trials = [trials, ... [ones(1, length(times)) * (k-0.4); ... ones(1, length(times)) * (k+0.4); ... ones(1, length(times)) * nan]]; end % convert matrices into simple vectors of (x,y) pairs: spiketimes = spiketimes(:); trials = trials(:); % plotting this is lightning fast: plot(spiketimes, trials, 'k') if in_msecs xlabel('Time [ms]'); xlim([0.0 1000.0*tmax]); else xlabel('Time [s]'); xlim([0.0 tmax]); end ylabel('Trials'); ylim([0.3 ntrials+0.7]); end