Julia运行.jl文件出现convert方法歧义LoadError错误如何解决
Julia代码报错修复方案
错误原因
- 循环逻辑错误
你定义的psfsize为浮点型单值4191.00,for i in psfsize仅会迭代1次,无法生成预期长度的temx数组,且浮点型参数用于迭代场景容易触发类型不匹配问题。 - 广播规则使用错误
Julia要求逐元素数组运算必须在运算符前加.触发广播机制:你当前代码中meshphi^2 + meshtheta^2未加广播符,一维列向量meshtheta和Adjoint行向量meshphi会按照矩阵运算规则匹配方法,不存在对应实现就会触发类型转换歧义报错。
修复后代码
pixelscale = 4e-4 psfsize = 4191 # 改为整型适配迭代逻辑 span = (2 * pixelscale * floor(psfsize/2)) / (psfsize - 1) # 初始已存入第一个元素,循环psfsize-1次凑够预期长度 temx = [-pixelscale * floor(psfsize/2)] for i in 1:psfsize-1 b = -pixelscale * floor(psfsize/2) + i * span push!(temx, b) end # 更简洁的temx生成方式(可替代上面的初始化+循环逻辑): # temx = range(-pixelscale * floor(psfsize/2), pixelscale * floor(psfsize/2), length=psfsize) |> collect meshtheta = temx meshphi = temx' # 所有逐元素运算符前加.触发广播 R_pup = sqrt.(meshphi.^2 .+ meshtheta.^2)
内容的提问来源于stack exchange,提问作者miao
相关产品推荐
相关产品推荐

