当我这样做时,在朱莉娅中:
N=1000;
for i = 2:N,
alpham[i] = 0.1 * (V[i-1]+40.) / (1. - exp(-(V[i-1]+40.)/10.));
end
长度为 1000 的 alpham 和 V 向量。我收到错误"参数错误:无效索引:1.0"。但是,如果我这样做:
for i = 2:1000,
它确实有效。有什么理由为什么前一个没有,或者有什么方法我仍然可以在我的 for 循环中使用 N?我做错了什么吗?
提前感谢,森特罗
ArgumentError 告诉您正在使用Float64
进行索引,这样做在 Julia 中没有定义。在您的最小工作示例 (MWE) 中,您将N
初始化为 1000(一个Int
),因此 MWE 实际上不会重现错误,但在您的注释中,您注意到在您的原始代码中,您得到 N 作为 floor(x)
,这返回一个浮点数。要获得Int
您需要floor(Int, x)
.
还有一些语法问题:for i = 2:1000
后不应该有,
,通常不需要以;
结束语句。
请注意,您应该确保 MWE 可以纯粹通过将代码复制粘贴到 REPL 中来运行(即需要初始化变量,alpham, V = ones(1000), ones(1000)
)。在发布之前自行运行它,以确保它重现您报告的错误,并捕获任何语法错误。