izhikevich2.m


function  [outV, outU, spiked] = izhikevich2(v, u, a, b, c, d, input, dt)
%IZHIKEVICH implements one step of the izhikevich neuron.
%Works for vectors of neurons.

outV = v + dt * (0.04*v.^2 +5*v + 140 - u + input);
outU = u + dt * a*(b.*v - u);

spiked = zeros(length(v),1);    %Initially no spikes detected

pos = find(outV>=30);

if ~isempty(pos)
    outV(pos) = c;
    outU(pos) = outU(pos) + d;    
    spiked = zeros(length(v),1);
    spiked(pos) = 1;
end