次の 3x3 正方行列a
とベクトルがありx
ます。
a = matrix(c(1.0, 0.1, 0.5,
0.1, 1.0, 0.9,
0.5, 0.9, 1.0), nrow=3, ncol=3)
x = c(0.1,0.2,0.3)
基本的に、行列とベクトルの上三角を使用して式をたどりたいと思います
y = (a12 - (x1/x2)^2 + (a13 - x1/x3)^2 + (a23 - x2/x3)^2
上記の式に R で次の for ループを使用すると、次のエラーが発生します。
Error in a[i, j] : subscript out of bounds
何か間違ったことをしている場合は、お知らせいただければ幸いです。
## initialize y
y = 0
for (i in 1 : nrow(a)-1){
for (j in i+1 : nrow(a)){
y = y + ((a[i,j]) - (x[i]/x[j])^2
}
}