我是 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 中创建和操作矩阵的更好方法,那将非常有帮助。