-1

我想知道是否有人可以提供帮助,我正在尝试阅读以下书籍:

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

这是为简单的集成和触发神经元建模而给出的代码示例的精确剪切和粘贴,但是每次我运行它时都会收到一个未定义的错误:(,根据以前的知识,我知道通常未定义与调用一个没有已明确声明。问题是,我不知道“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;
4

1 回答 1

4

我是那本书的作者。很抱歉您对代码感到困惑。本书本身只包含最相关的行,在线代码(可从 mikexcohen.com 获得)包含所有代码。这些变量在在线代码中都有明确定义,例如timevec在chapter30.m的第17行定义。如果我将每一行代码都包含在书中,那将是两倍长,成本更高,而且没有充分的理由。我想我在书的开头已经很清楚地说明了这个事实。它也在我的网站和 MIT Press 网站上。从本书中学习的最好方法是下载代码并在阅读时在计算机上浏览该代码。这也有利于节省您将代码从书中复制到 MATLAB 的时间。

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

于 2018-04-08T18:23:32.737 回答