私はRが初めてで、これが私のコードです:
f2 = function(n){
E = matrix(c(0),nrow = (n+1), ncol = (n+1));
k = -1;
for(j in 1:n+1){
k = k + 1;
l = 0;
for(i in 1:n+1){
if(k == 0){E[i,j] = 1;}
if(k == 1){E[i,j] = 1 - (2*l)/n;}
l = l + 1;
}
}
print(E);
}
これは、n = 2 で印刷すると、次の「予期しない」結果になります。
> f2(2)
[,1] [,2] [,3]
[1,] 0 0 0
[2,] 0 1 1
[3,] 0 1 0
しかし、私はこれを印刷したい:
> f2(2)
[,1] [,2] [,3]
[1,] 1 1 0
[2,] 1 0 0
[3,] 1 -1 0
Javaでも試してみたので、私の論理は正しいと思いますが、期待どおりの結果が得られたので、ここで何が問題なのかわかりません。残念ながら、それは私が完成させたいより大きなプログラムの始まりなので、本当に面倒です.Rで行列を作成して操作するより良い方法を教えていただければ、非常に役に立ちます.