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 = :onetwostart(:onetwo)

中遇到类似的错误

解决方案

使用函数 pheig,它 return 是一个元组。

E, F = pheig(A)