私は、apply()などを使って3つの行列のリストに対して行列の乗算をしようとしています。ここでRのapply()を使用した行列の3つのリストに対する行列乗算?
はサンプルデータです:
mat1 <- matrix(c(1:16), 4, 4, byrow = TRUE)
mat2 <- matrix(c(1:16), 4, 4, byrow = TRUE)
mat3 <- matrix(c(1:16), 4, 4, byrow = TRUE)
l1 <- list(mat1, mat2, mat3)
l2 <- list(mat1, mat2, mat3)
l3 <- list(mat1, mat2, mat3)
私は次の操作を行うと、それぞれが、すべての3つのリストに[[N]]に対応するため、新たなリストにそれらをダンプしたいと思います:
l1[[1]] %*% l2[[1]] %*% l3[[1]]
l1[[2]] %*% l2[[2]] %*% l3[[2]]
l1[[3]] %*% l2[[3]] %*% l3[[3]]
私は次のことを試してみました:
mat <- lapply(c(mat1, mat2, mat3), function(x) x[1] %*% x[2] %*% x[3])
しかし、私は必要なものを得ていないのです。助けてください?
これはZheyuanLiが何であるかを訂正した後に – akrun
@ ZheyuanLiあなたが正しいことを修正した後で 'Map(function(x、y、z)x%*%y%*%z、l1、l2、l3)発言をありがとう。 – jogo
ありがとうZheyuan Li。あなたのコメントごとにコードが修正されました。 – useryk