R 操作矩陣和計算SVD的基本操作記錄

2021-09-07 07:00:46 字數 1669 閱讀 2123

在r中可以用函式matrix()來建立乙個矩陣,應用該函式時需要輸入必要的引數值。 > args(matrix) function (data = na, nrow = 1, ncol = 1, byrow = false, dimnames = null) data項為必要的矩陣元素,nrow為行數,ncol為列數,注意nrow與ncol的乘積應為矩陣元素個數,byrow項控制排列元素時是否按行進行,dimnames給定行和列的名稱。

a

mm也可以用scan(),如a=scan()

m> 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),分別計算樣本均值和樣本方差,這兩個函式分別相當於sum(x)/length(x),sum((x-mean(x)) \^2)/(length(x) -1)。如果var()的引數是乙個n*p的矩陣,那麼函式的值是乙個p*p的樣本協方差矩陣,認為每行是乙個p變數的樣本向量。

因此求解協方差可以為

var(m)

> var(m)

[,1] [,2]

[1,] 0.4244522 -0.3229035

[2,] -0.3229035 0.7926980

將其賦值給n

nsvd(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

另外可見:

R中矩陣的奇異值分解SVD

singular value decomposition svd 奇異值分解是一種具有重要實際應用意義的矩陣分解方式,已經具有很廣泛的應用,如壓縮儲存,矩陣求秩,確定投影運算元等。通常儲存矩陣值是按行或者列儲存矩陣的每乙個值,奇異值分解的結果可作為一種儲存矩陣值的另一種方式。奇異值分解將矩陣進行等價...

R的基本操作

1.輸入資料 x c 1,2,3,4,5,6,7,8,9 輸入資料,c 為連線函式1.1 計算均值和標準差 mean x 均值 sd x 標準差1.2 直方圖 hist x 直方圖2.向量 2.1基本運算 11 4 餘數 sqrt 2 開方 factorial x 階乘 floor x ceilin...

MATLAB基本矩陣函式和操作

eye 單位矩陣 zeros 全零矩陣 ones 全1矩陣 rand 均勻分布隨機陣 genmarkov 生成隨機markov矩陣 linspace 線性等分向量 logspace 對數等分向量 logm 矩陣對數運算 cumprod 矩陣元素累計乘 cumsum 矩陣元素累計和 toeplitz ...