我希望能够将矩阵中第二维和第三维的对角线设置为零,如下所示:
array<-array(1,dim=c(3,3,3))
array[,1,1]<-0
array[,2,2]<-0
array[,3,3]<-0
我总是可以使用循环,但我脚本的这部分需要很快。是否有可以同时执行此操作的功能?
谢谢, 莱恩
答案 0 :(得分:2)
从技术上讲,这也是一个循环:
sapply(1:3,function(i) a[,i,i] <<- 0)
但我认为它对于所有实际目的来说都足够快。
答案 1 :(得分:0)
另一种解决方案(如果行数少于i
s,可能会更快):
apply(a, 1, function(x) diag(x) <- 0)