スパイク時間 (ニューロンからの活動電位) のベクトルと、刺激イベントのタイムスタンプのベクトルがあります。PSTH を作成して、刺激がニューロンのスパイク率に影響するかどうかを確認したいと考えています。各刺激イベントをループすることでこれを行うことができますが (以下の簡単な例を参照)、30,000 を超える刺激イベントがあり、多くのニューロンが記録されている長い実験では、これは非常に遅くなります。
forループなしでこれを行うにはどうすればよいですか?
遅い方法の例:
% set variables
spikeTimes = [0.9 1.1 1.2 2.5 2.8 3.1];
stimTimes = [1 2 3 4 5];
preStimTime = 0.2;
postStimTime = 0.3;
for iStim = 1:length(stimTimes)
% find spikes within time window
inds = find((spikeTimes > (stimTimes(iStim) - preStimTime)) & (spikeTimes < (stimTimes(iStim) + postStimTime)));
% align spike times to stimulus onset
stimONtimes = spikeTimes(inds) - stimTimes(iStim);
% store times in array for plotting
PSTH_array(iStim,1:length(stimONtimes)) = stimONtimes;
end