gpt4 book ai didi

julia - 如何获取有关 julia 数组边界错误的更多信息?

转载 作者:行者123 更新时间:2023-12-01 00:53:16 25 4
gpt4 key购买 nike

我编写了一个带有数组边界错误的 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 解释器在遇到异常时提供有关异常的更详细信息,或者调试失败语句并查看发生了什么的方法?例如,知道发生这种情况时导致边界错误的索引值将有助于调试。

最佳答案

通过此拉取请求 https://github.com/JuliaLang/julia/pull/9534 在 julia v0.4 中改进了边界错误报告.在 julia 0.4 中,默认情况下会打印数组以及您尝试访问的索引:

julia> wrong()
ERROR: BoundsError: attempt to access 158x4 Array{Float64,2}:
NaN 0.0 0.0 0.0
0.0157085 0.0 0.0 0.0
0.0314201 0.0 0.0 0.0
0.047138 0.0 0.0 0.0
0.0628651 0.0 0.0 0.0
0.0786045 0.0 0.0 0.0
0.094359 0.0 0.0 0.0
0.110131 0.0 0.0 0.0
0.125924 0.0 0.0 0.0
0.141739 0.0 0.0 0.0

0.127183 0.0 0.0 0.0
0.111388 0.0 0.0 0.0
0.0956143 0.0 0.0 0.0
0.0798585 0.0 0.0 0.0
0.064118 0.0 0.0 0.0
0.04839 0.0 0.0 0.0
0.0326715 0.0 0.0 0.0
0.0169595 0.0 0.0 0.0
0.00125087 0.0 0.0 0.0
at index [159,2]
in wrong at none:15

我不知道您是否可以将更改反向移植到您的 julia 版本,但切换到 0.4 应该可以解决您的问题。

关于julia - 如何获取有关 julia 数组边界错误的更多信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29910124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com