Julia 中 LowRankApprox 的问题
Issues with LowRankApprox in Julia
我正在尝试使用 Julia v0.6.0 中 LowRankApprox.jl 包提供的 pheigfact 函数进行 Hermitian 特征分解。基本上,它只是一行代码,如:
(E, F) = pheigfact(A);
其中A是实数对称正定矩阵。但是,我收到以下错误:
MethodError: no method matching
start(::LowRankApprox.PartialHermitianEigen{Float64,Float64})
Closest candidates are:
start(!Matched::SimpleVector) at essential.jl:258
start(!Matched::Base.MethodList) at reflection.jl:560
start(!Matched::ExponentialBackOff) at error.jl:107
感谢任何帮助!
TL;DR
使用函数 pheig
而不是 pheigfact
到 return 值和向量的元组
完整答案
我没有这个包,但从文档看来 pheigfact
return 是一个单一元素,您可以使用 getindex(x,ind::Symbol)
从中访问 values/vectors。
例如
F = pheigfact(A)
values=F[:values]
vectors=F[:vectors]
如果您尝试将单个元素分配给管,它会尝试迭代不支持它的类型,因此会出现错误(即该类型没有方法 start
).我可能会在 x,y = :onetwo
或 start(:onetwo)
中遇到类似的错误
解决方案
使用函数 pheig
,它 return 是一个元组。
E, F = pheig(A)
我正在尝试使用 Julia v0.6.0 中 LowRankApprox.jl 包提供的 pheigfact 函数进行 Hermitian 特征分解。基本上,它只是一行代码,如:
(E, F) = pheigfact(A);
其中A是实数对称正定矩阵。但是,我收到以下错误:
MethodError: no method matching
start(::LowRankApprox.PartialHermitianEigen{Float64,Float64})
Closest candidates are:
start(!Matched::SimpleVector) at essential.jl:258
start(!Matched::Base.MethodList) at reflection.jl:560
start(!Matched::ExponentialBackOff) at error.jl:107
感谢任何帮助!
TL;DR
使用函数 pheig
而不是 pheigfact
到 return 值和向量的元组
完整答案
我没有这个包,但从文档看来 pheigfact
return 是一个单一元素,您可以使用 getindex(x,ind::Symbol)
从中访问 values/vectors。
例如
F = pheigfact(A)
values=F[:values]
vectors=F[:vectors]
如果您尝试将单个元素分配给管,它会尝试迭代不支持它的类型,因此会出现错误(即该类型没有方法 start
).我可能会在 x,y = :onetwo
或 start(:onetwo)
解决方案
使用函数 pheig
,它 return 是一个元组。
E, F = pheig(A)