Ho tre vettori X
, Y
e Z
di uguale lunghezza n
. Devo creare una matrice di una funzione f(X[i],Y[j],Z[k])
. Il modo semplice per farlo è quello di scorrere in sequenza ogni elemento di ciascuno dei 3 vettori. Tuttavia, il tempo richiesto per calcolare l'array cresce in modo esponenziale con n
. C'è un modo per implementare questo usando operazioni vettorializzate?R - Implementazione vettoriale della funzione ternaria
EDIT: Come menzionato nei commenti, ho aggiunto un semplice esempio di ciò che è necessario.
set.seed(1)
X = rnorm(10)
Y = seq(11,20)
Z = seq(21,30)
F = array(0, dim=c(length(X),length(Y),length(Z)))
for (i in 1:length(X))
for (j in 1:length(Y))
for (k in 1:length(Z))
F[i,j,k] = X[i] * (Y[j] + Z[k])
Grazie.
Un esempio riproducibile potrebbe essere utile. –