volt_rest = -70; % resting potential (mV)
volt_thresh = -50; % action potential thresh. (mV)
volt_reset = -75; % post-spike reset voltage
% membrane parameters
R_m = 10; % neuron membrane resistance (MOhm)
tau = 10; % time constant of decay (ms)
srate = 10000; % sampling rate in Hz
sim_dur = 1; % stimulus duration in seconds
time = 0:1/srate:sim_dur - 1/srate;
input = zeros(1,length(time));
input(dsearchn(time',.3):dsearchn(time',.7)) = 3;
neuronV = volt_rest + zeros(size(timevec));
spiketimes = [];
if neuronV(ti) > volt_thresh
neuronV(ti) = volt_reset;
spiketimes = cat(1,spiketimes,ti);
end
r_i = volt_rest + input(ti)*R_m;
neuronV(ti+1) = r_i + (neuronV(ti) - r_i) * exp(-1000/srate/tau);
neuronV(neuronV==volt_reset) = 40;

 채택된 답변

Ameer Hamza
Ameer Hamza 2018년 4월 21일

0 개 추천

I cannot tell you what is exactly written in that book, but a quick view of the code shows that timevec is same is time in your case. As for ti it is an index of the matrix so it can be defined in the following way.

  • For timevec change as follow:
neuronV = volt_rest + zeros(size(time));
  • For the issue with ti do the following:
for ti=1:numel(time)
    if neuronV(ti) > volt_thresh
        neuronV(ti) = volt_reset;
        spiketimes = cat(1,spiketimes,ti);
    end
end

This will remove all error.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Electrophysiology에 대해 자세히 알아보기

질문:

N/A
2018년 2월 28일

편집:

N/A
2020년 9월 16일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by