我在朱莉娅时:
for i = 2:1000,
使用长度为1000的alpham和V向量。我得到错误“ArgumentError:invalid index:1.0”。但是,如果我这样做:
inSampleSize = Math.Sqrt(actualNumberofPixels / reqNumberOfPixels);
确实有效。是否有任何理由为什么前一个没有或有什么方法我仍然可以在我的for循环中使用N?我做错了吗?
提前致谢, Xentro
答案 0 :(得分:8)
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)
)。在发布之前自己运行它以确保它能够重现您报告的错误,并捕获任何语法错误。