https://github.com/myhannahchoi/V4-PFC-dynamics
Raw File
Tip revision: 597e7b23cb210de950db9ec08000202e80796570 authored by Hannah Choi on 27 June 2017, 19:45:06 UTC
Update README.md
Tip revision: 597e7b2
poissonspike.m
function  [counts] = poissonspike(spikesPerS,timeStep_ms, duration_ms,repeat)
timeStepS = timeStep_ms/1000;
durationS = duration_ms/1000;

spikes = makeSpikes(timeStepS, spikesPerS, durationS, repeat);
rasterPlot(spikes, timeStepS);

counts = countSpikes(spikes,timeStepS);
% plotSpikesCounts(counts);

end

function counts = countSpikes(spikes, timeStepS,startS,endS)
if (nargin < 4)
    endS = length(spikes)*timeStepS;
end
if (nargin < 3) 
    startS = 0;
end
trains = size(spikes,1);
counts = zeros(1,trains);
startBin = startS/timeStepS + 1;
endBin = floor(endS/timeStepS);

for train = 1:trains
    counts(train) = sum(spikes(train,startBin:endBin));
end    
end


function rasterPlot(spikes, timeStepS)
figure(21),clf,set(gcf,'color','w')

times =[0:timeStepS:timeStepS*(length(spikes)-1)];
axes('position',[0.1,0.1,0.8,0.8]);
axis([0, length(spikes)-1,0,1]);
trains = size(spikes, 1);
ticMargin = 0.01;
ticHeight = (1 - (trains + 1) * ticMargin)/ trains;

for train = 1:trains
    spikeTimes = find(spikes(train,:) == 1);
    
    yOffset = ticMargin + (train - 1) * (ticMargin + ticHeight);
    for i = 1:length(spikeTimes)
        line([spikeTimes(i), spikeTimes(i)],[yOffset, yOffset+ticHeight]);
    end
end

xlabel('Time (s)')
title('Raster plot of spikes')

end

function spikes = makeSpikes(timeStepS, spikesPerS, durationS, numTrains)
if (nargin<4)
    numTrains = 1;
end
times = [0:timeStepS:durationS];
spikes = zeros(numTrains, length(times));

for train = 1:numTrains
    vt = rand(size(times));
%     size(spikesPerS)
%     size(timeStepS)
%     size(spikes)
%     size(times)
%     timeStepS
%     durationS
    spikes(train,:) = (spikesPerS.*timeStepS)>vt;
end
end
back to top