R 操作矩阵和计算SVD的基本操作记录
在R中可以用函數(shù)matrix()來創(chuàng)建一個(gè)矩陣,應(yīng)用該函數(shù)時(shí)需要輸入必要的參數(shù)值。 > args(matrix) function (data =?NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames =?NULL) data項(xiàng)為必要的矩陣元素,nrow為行數(shù),ncol為列數(shù),注意nrow與ncol的乘積應(yīng)為矩陣元素個(gè)數(shù),byrow項(xiàng)控制排列元素時(shí)是否按行進(jìn)行,dimnames給定行和列的名稱。
a<-c(3,4,9,8,3,55,2,334)m<-matrix(a, byrow=T, nrow=2)
m
也可以用scan(),如a=scan() m<-matrix(a, byrow=F, nrow=21)
> m
 [,1] [,2]
 [1,] -0.2504222 -0.06554779
 [2,] -0.1280644 -0.56722128
 [3,] 0.5754956 -0.19835075
 [4,] 1.1872865 -0.66520250
 [5,] 0.9425697 -1.04680095
 [6,] 0.8813910 -1.12941258
 [7,] 0.9349228 -0.33907873
 [8,] 1.0037492 -0.75525877
 [9,] 0.9655123 -1.17696225
[10,] 0.9043332 -1.14958515
[11,] 0.8584489 -0.80593043
[12,] 0.8049172 -0.70290605
[13,] 0.7743276 -0.33643707
[14,] 0.5831430 -0.22836956
[15,] 0.4378426 0.70245203
[16,] 0.4378426 1.08645184
[17,] 0.6596168 0.90105613
[18,] 0.2313632 1.39240301
[19,] -0.3498382 1.02113127
[20,] -0.8010340 1.67097731
[21,] -1.2675246 -0.09796806
mean(x)和var(x),分別計(jì)算樣本均值和樣本方差,這兩個(gè)函數(shù)分別相當(dāng)于sum(x)/length(x),sum((x-mean(x)) \^2)/(length(x) -1)。如果var()的參數(shù)是一個(gè)n*p的矩陣,那么函數(shù)的值是一個(gè)p*p的樣本協(xié)方差矩陣,認(rèn)為每行是一個(gè)p變量的樣本向量。
因此求解協(xié)方差可以為
var(m)
> var(m)
 [,1] [,2]
[1,] 0.4244522 -0.3229035
[2,] -0.3229035 0.7926980
將其賦值給n
n<-m
svd(n)即可求得svd值
> svd(n)
$d
[1] 0.9802846 0.2368656
$u
 [,1] [,2]
[1,] -0.5023242 0.8646794
[2,] 0.8646794 0.5023242
$v
 [,1] [,2]
[1,] -0.5023242 0.8646794
[2,] 0.8646794 0.5023242
http://www.cnblogs.com/einyboy/p/3182589.html
http://www.biostatistic.net/thread-2522-1-1.html
http://blog.csdn.net/u013259893/article/details/40483189
轉(zhuǎn)載于:https://www.cnblogs.com/bnuvincent/p/5896331.html
總結(jié)
以上是生活随笔為你收集整理的R 操作矩阵和计算SVD的基本操作记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 编辑器source insight,su
- 下一篇: C# 控制台语音计算器
