[R] matlab eigs function in R
tlumley at u.washington.edu
Tue Jun 3 19:44:34 CEST 2008
Presumably the original poster was looking for a function that would compute just the largest five eigenvalues and associated vectors, because that is enormously more efficient for a large matrix than computing all of them.
eigen() computes all of them.
One way to compute just a few is to use svd(), where you can specify the number of left and right singular vectors to compute.
On Tue, 3 Jun 2008, David Winsemius wrote:
> "Jorge Ivan Velez" <jorgeivanvelez at gmail.com> wrote in
> news:317737de0806030529t50fdced9r49156de606a0d198 at mail.gmail.com:
>> Dear kayteck,
>> Function eigen (see ?eigen) will do what you want.
> He had looked, but since eigen returns both eigenvalues and
> eigenvectors, and does so in a list, perhaps he needs advice about how
> to extract his values from the list structure.
> x <- matrix(c(1:5, (1:5)^2, (1:5)^(1/2), 0,0,0,1,0, 0,0,0,0,1),5, 5)
> #List of 2
> # $ values : cplx [1:5] 7.43+0i 1.00+0i 1.00+0i ...
> # $ vectors: cplx [1:5, 1:5] 0.0699+0i 0.1600+0i 0.2894+0i ...
> d <- 3
>  7.431675+0i 1.000000+0i 1.000000+0i
> #no need to sort since eigen does that by default.
> Not sure we can help him out regarding the "slight difference" btwn
> Matlab values and R values due to the unnecessary vagueness of his
> David Winsemius
>> On Tue, Jun 3, 2008 at 5:42 AM, kayteck_master
>> <kayteck_master at o2.pl> wrote:
>>> Does anybody know how one can compute d largest
>>> eigenvalues/eigenvectors in R, like in MATLAB eigs function ? eigen
>>> function computes all eigenvectors/eigenvalues, and they are
>>> slightly different than those generated by matlab eigs.
>>> Thanks in advance
> R-help at r-project.org mailing list
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
Thomas Lumley Assoc. Professor, Biostatistics
tlumley at u.washington.edu University of Washington, Seattle
More information about the R-help