在R中可以用函数matrix()来创建一个矩阵,应用该函数时需要输入必要的参数值。 > args(matrix) function (data = , nrow = 1, ncol = 1, byrow = FALSE, dimmes = ) data项为必要的矩阵元素,nrow为行数,ncol为列数,注意nrow与ncol的乘积应为矩阵元素个数,byrow项控制排列元素时是否按行进行,dimmes给定行和列的名称。
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.09796806mean(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 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