Tôi có ba vectơ X
, Y
và Z
có độ dài bằng nhau n
. Tôi cần tạo một mảng n x n x n
của hàm f(X[i],Y[j],Z[k])
. Cách đơn giản để làm điều này là lặp tuần tự qua từng phần tử của mỗi 3 vectơ. Tuy nhiên, thời gian cần thiết để tính toán mảng tăng theo cấp số nhân với n
. Có cách nào để thực hiện điều này bằng cách sử dụng các hoạt động được vector hóa không?R - Thực hiện chức năng ternary được thực hiện từng góc
EDIT: Như đã đề cập trong các nhận xét, tôi đã thêm một ví dụ đơn giản về những gì cần thiết.
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])
Cảm ơn.
Ví dụ có thể lặp lại có thể hữu ích. –