【发布时间】:2014-10-11 04:04:01
【问题描述】:
示例:我有 20 个特征值,我选择了 10 个作为最佳特征值。对于这 10 个值,我需要分别找到特征向量。怎么办?我是 R 编程的新手。期待您的回复。
【问题讨论】:
标签: r eigenvector eigenvalue
示例:我有 20 个特征值,我选择了 10 个作为最佳特征值。对于这 10 个值,我需要分别找到特征向量。怎么办?我是 R 编程的新手。期待您的回复。
【问题讨论】:
标签: r eigenvector eigenvalue
> B <- matrix(1:4, 2)
> eig <- eigen(B)
> eig$vectors[,which.max(eig$values)]
[1] -0.5657675 -0.8245648
或类似的东西
> n <- 3
> A <- matrix(round(runif(n*n),2),nrow=n)
> A
[,1] [,2] [,3]
[1,] 0.54 0.90 0.82
[2,] 0.09 0.42 0.95
[3,] 0.17 0.75 0.69
> evv.A <- eigen(A)
> evv.A
$values
[1] 1.6230202 0.3095823 -0.2826025
$vectors
[,1] [,2] [,3]
[1,] -0.7455955 -0.97996498 0.3069212
[2,] -0.4464598 0.18600090 -0.7788676
[3,] -0.4947332 0.07122006 0.5469594
>
> k <- which(abs(evv.A$values)==max(abs(evv.A$values)))
> evv.A$vectors[,k]
[1] -0.7455955 -0.4464598 -0.4947332
> k
[1] 1
【讨论】:
k <- 1:2,然后evv.A$vectors[,k] 语句应该给出你想要的矩阵。使用?eigen阅读本征帮助。