如何在R中生成矩阵

时间:2017-11-23 16:15:10

标签: r

我尝试了两种不同的方法来计算矩阵的元素。我认为这两种方法都是正确的,但它们会产生不同的结果。我很好奇,不知道哪一个是正确的。

例如,D是(t / 2 + 1)乘(t / 2 + 1)矩阵,其元素读为

  D(k,m) = (2/t)*cos(((m-1)(k-1)*pi)/(t/2))

K = M = 1,...,(T / 2 + 1)。

我的第一个代码是:

   m<-seq(1,(t/2)+1,length=(t/2)+1);
   k<-m;

   D<-matrix(NA,nrow = length(k),ncol = length(k)); 

   for(i in 1:length(k)) # row
     for(j in 1:length(m)) # column
    {
     D[i,j]<-(2/t)*cos(((j-1)*(i-1)*pi)/(t*0.5))
    }

我的第二个是:

D<-(2/(t))*cos(as.matrix(seq(0,t/2,by=1))%*%
   t(as.matrix(seq(0,t/2,by=1)))*pi)/(0.5*t)

PI = 3.1415926

这两种方法是否应该产生相同的结果?感谢您的建议!

1 个答案:

答案 0 :(得分:1)

将您的第二个更改为此应解决问题:

D<-(2/(t))*cos(as.matrix(seq(0,t/2,by=1))%*%
             t(as.matrix(seq(0,t/2,by=1)))*pi/(0.5*t))

请注意/(0.5*t)内需要cos()

Gook Luck!