IAF神经元模拟没有运行? [Matlab的未定义]

时间:2018-02-28 17:58:32

标签: matlab neuroscience

我想知道如果有人可以提供帮助,我正在尝试通过以下书籍:

Cohen,Mike X.脑与认知科学家MATLAB(麻省理工学院出版社)(第490页)。麻省理工学院出版社。 Kindle版。

这是为简单的集成和fire nueron建模而给出的代码示例的精确剪切和粘贴,但是每次运行它时都会得到一个未定义的错误:(从之前的知识我知道通常未定义与调用函数有关尚未明确声明。问题是,我不知道'ti'或'timevec'应该与什么相关?(我已经尝试将它们切换到我已经声明的变量,例如'时间',但那只是导致更多问题!)也许这是一个我错过并快速解决的语法变化?我在OSX上使用R2017b。

谢谢!

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;

1 个答案:

答案 0 :(得分:3)

我是那本书的作者。对不起,您对代码感到困惑。本书本身仅包含最相关的行,在线代码(可从mikexcohen.com获得)包含所有代码。这些变量在在线代码中有明确定义,例如timevec在第30章的第17行定义。如果我在书中包含了每一行代码,那么它的成本就会增加一倍,花费更多,而且没有充分的理由。我以为我在书的开头很清楚地说明了这个事实。它也出现在我的网站和麻省理工学院出版社网站上。从本书中学习的最佳方法是下载代码并在阅读时在计算机上查看代码。这样做的好处是可以节省您将书籍中的代码复制到MATLAB中的时间。

将来,如果您有任何疑问或问题,请直接给我发电子邮件,或者您可以通过google-groups论坛发布公开评论。或者给我发电子邮件,告诉我你在这里发了一个问题。我通常会在一天内回复电子邮件和帖子,很久以前我们就可以解决你的困惑了。也许阅读本书的开头或直接与我联系可能会阻止你对amazon.co.uk的负面评论。