Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中的矩阵运算效率_R_Matrix - Fatal编程技术网

R中的矩阵运算效率

R中的矩阵运算效率,r,matrix,R,Matrix,我有3个矩阵X,K和M,如下所示 x <- matrix(c(1,2,3,1,2,3,1,2,3),ncol=3) K <- matrix(c(4,5,4,5,4,5),ncol=3) M <- matrix(c(0.1,0.2,0.3),ncol=1) 目前我使用3 for循环来计算R中的最终矩阵。但是对于大型矩阵,这需要非常长的时间来计算。我还需要改变矩阵M中的元素,找到产生最小平方误差的最佳值。有没有更好的编码方法,即欧几里德范数 for (lin in 1:N)

我有3个矩阵X,K和M,如下所示

x <- matrix(c(1,2,3,1,2,3,1,2,3),ncol=3)
K <- matrix(c(4,5,4,5,4,5),ncol=3) 
M <- matrix(c(0.1,0.2,0.3),ncol=1) 
目前我使用3 for循环来计算R中的最终矩阵。但是对于大型矩阵,这需要非常长的时间来计算。我还需要改变矩阵M中的元素,找到产生最小平方误差的最佳值。有没有更好的编码方法,即欧几里德范数

for (lin in 1:N) {
  for (col in 1:K) {
    Y[lin,col] <- 0
    for (m in 1:M){
      Y[lin,col] <- Y[lin,col] + (X[lin,m]-K[col,m])^2 * M[m,1]^2
    }
  }
}
for(1:N中的lin){
for(1:K中的列){

Y[lin,col]谢谢。我能够解决这个问题。这个变化使我的计算速度比以前快了一倍。对于可能感兴趣的任何人,我用以下内容替换了(1:m中的m)
的最后一个For循环:

Y[lin,col] <- norm(as.matrix((X[lin,]-K[col,]) * M[1,]),"F")^2

Y[lin,col]谢谢。我能够解决这个问题。这一变化使我的计算速度比以前快了一倍。对于可能感兴趣的任何人,我用以下内容替换了(1:m中的m)的最后一个For循环

Y[lin,col] <- norm(as.matrix((X[lin,]-K[col,]) * M[1,]),"F")^2

Y[lin,col]抱歉,我之前解释错误。我做了一些更新,希望这次我能更好地解释我自己。N对象是什么?-我无法运行此代码。你的大矩阵有多大?这对你有帮助吗?谢谢!我能够找到它。我编了这个例子。我的真实数据有100万条记录。我想代码是dn不运行可能是因为N、K和M需要提前定义。很高兴能帮上一点忙!将您自己的答案标记为正确答案以结束问题:)抱歉,我之前解释错误。我做了一些更新,希望这次我能更好地解释自己。N对象是什么?-我无法运行此代码。代码有多大你的大矩阵?这对你有帮助吗?谢谢!我能弄明白。我编了这个例子。我的真实数据有100万条记录。我想代码没有运行可能是因为N、K和M需要提前定义。很高兴能帮上一点忙!将你自己的答案标记为正确答案以结束问题:)