1
は私が20 x 10
行列X
を持っている、と私は1:10
にi,j
ためA[i,j,] = X[,i] * X[,j]
と10 x 10 x 20
配列A
を作成したいです。ここでfor
ループを使用して、簡単な解決策は以下のとおりです。列方向「外積」
X <- matrix(seq(10*20),20,10)
A <- array(dim=c(10,10,20))
for (i in 1:10)
for (j in 1:10)
A[i,j,] <- X[,i] * X[,j]
どのように私はベクトル化でこれを実装するのですか?
ありがとうございました。
私は質問を編集したので、 'X'はすべて一意のエントリを持っています。重要なのは、一般的なマトリックス上で列方向の外積を行うことです。 – user3294195
'i、j'は' ncol(X) '(この場合は' 10')でなければなりません。 – user3294195