function rasterplot(spikes, tmax)
% Display a spike raster of the spike times given in spikes.
%
% Arguments:
%   spikes: a cell array of vectors of spike times in seconds
%   tmax: plot spike raster up to tmax seconds
    spiketimes = [];
    trials = [];
    ntrials = length(spikes);
    for k = 1:ntrials
        times = spikes{k};
        times = times(times<tmax);
        % (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 column vectors of (x,y) pairs:
    spiketimes = spiketimes(:);
    trials = trials(:);
    % plotting this is lightning fast:
    plot(spiketimes, trials, 'k')
    xlabel('Time [s]');
    xlim([0.0 tmax]);
    ylabel('Trials');
    ylim([0.3 ntrials+0.7]);
end