1

我正在尝试使用 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 

感谢任何帮助!

4

1 回答 1

2

TL;博士

使用该函数pheigpheigfact返回值和向量的元组


完整答案

我没有这个包,但从文档来看,它看起来pheigfact返回一个元素,您可以从中访问值/向量,使用getindex(x,ind::Symbol).

例如

F = pheigfact(A)
values=F[:values]
vectors=F[:vectors]

如果您尝试将单个元素分配给管子,它将尝试迭代不支持它的类型,从而给您错误(即该类型没有方法start)。x,y = :onetwo我可能会遇到类似的错误,要么start(:onetwo)

解决方案

使用pheig返回元组的函数。

E, F = pheig(A)
于 2017-08-16T09:24:15.763 回答