svd奇异值分解 R语言svd hilbert <- function(n) { i <- 1:n; 1 / outer(i - 1, i, "+") } X <- hilbert(9)[, 1:6] (s <- svd(X)) D <- diag(s$d) s$u %*% D %*% t(s$v) # X = U D V' 其中,%*% 表示矩阵相乘 t(s$u) %*% X %*% s$v # D = U' X V 上面是R语言中svd的代码示例,svd可以用来降维