Czy ktoś zna czysty/skuteczny sposób na zastąpienie elementów ukośnych w tablicy, podobnie jak w przypadku macierzy z użyciem diag(x) <- value
? Innymi słowy coś takiego:Zastąp elementy przekątnej w tablicy
> 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
ale bez użycia pętli for (moje tablice są dość duże i manipulacja ta będzie już w pętli).
Wielkie dzięki.
+1 bardzo ładne. Jest szybszy niż mój kod funkcji. –
dobra robota, okrzyki! – gjabel