在朱利亚,我这样做:
N=1000;
for i = 2:N,
alpham[i] = 0.1 * (V[i-1]+40.) / (1. - exp(-(V[i-1]+40.)/10.));
end
Run Code Online (Sandbox Code Playgroud)
使用lenght 1000的alpham和V向量.我得到错误"ArgumentError:invalid index:1.0".但是,如果我这样做:
for i = 2:1000,
Run Code Online (Sandbox Code Playgroud)
它确实有效.是否有任何理由为什么前一个没有或有什么方法我仍然可以在我的for循环中使用N?难道我做错了什么?
在此先感谢Xentro
ArgumentError告诉您正在使用a Float64进行索引,这样做不是在Julia中定义的.在您的最小工作示例(MWE)中,您初始化N为1000(an Int),因此MWE实际上不会重现错误,但在您的注释中,您注意到在原始代码中,您获得N as floor(x),这将返回一个浮点数.为了满足Int您的需求floor(Int, x).
还有一些语法问题:你不应该有一个,after for i = 2:1000,并且通常没有必要结束语句;.
请注意,您应该确保MWE可以纯粹通过复制粘贴REPL中的代码来运行(即需要初始化变量alpham, V = ones(1000), ones(1000)).在发布之前自己运行它以确保它重现您报告的错误,并捕获任何语法错误.