【发布时间】:2015-04-28 04:05:39
【问题描述】:
我编写了一个带有数组边界错误的 Julia 函数:
function wrong()
alphas = [ 0.5, 1, 1.25, 2.0 ] ;
theta = 0:0.02:1 * pi ;
U = zeros( length(theta), 4 ) ;
i = 1 ;
j = 1 ;
for a = alphas
kd = pi * a ;
for t = theta
v = (cos( kd * cos( t ) ) - cos( kd ))/sin( t ) ;
U[i, j] = v ;
i = i + 1 ;
end
j = j + 1 ;
end
end
这里 i=1 应该在循环中。我明白了:
julia> wrong()
ERROR: BoundsError()
in setindex! at array.jl:308 (repeats 2 times)
有什么方法可以让 julia 解释器在遇到异常时提供有关异常的更详细信息,或者有什么方法可以调试失败的语句并查看发生了什么?例如,知道发生这种情况时导致边界错误的索引值将有助于调试。
【问题讨论】:
-
无关的、肤浅的、挑剔的文体细节:在 Julia 中,以
+=递增并避免以分号结束语句被认为是更好的风格。 -
+= 我可以,但是分号将是一个很难改掉的习惯,因为我主要使用 C++ 编写代码。
标签: julia