Có ai biết một cách gọn gàng/hiệu quả để thay thế các phần tử chéo trong mảng, tương tự như việc sử dụng diag(x) <- value
cho ma trận không? Nói cách khác một cái gì đó như thế này:thay thế các phần tử chéo trong một mảng
> m<-array(1:27,c(3,3,3))
> for(k in 1:3){
+ diag(m[,,k])<-5
+ }
> m
, , 1
[,1] [,2] [,3]
[1,] 5 4 7
[2,] 2 5 8
[3,] 3 6 5
, , 2
[,1] [,2] [,3]
[1,] 5 13 16
[2,] 11 5 17
[3,] 12 15 5
, , 3
[,1] [,2] [,3]
[1,] 5 22 25
[2,] 20 5 26
[3,] 21 24 5
nhưng không sử dụng vòng lặp (mảng của tôi khá lớn và thao tác này sẽ nằm trong vòng lặp).
Rất cám ơn.
+1 rất đẹp. Nó nhanh hơn mã chức năng của tôi. –
làm việc tốt, chúc mừng! – gjabel