У меня был небольшой (возможно, неэффективный) код Matlab, который генерировал матрицу значений функции произведения точек сетки сетки. Например:оценивать матричное выражение в точках сетки с помощью Julia
N = 2 ;
r = -N:N ;
[X1, X2] = ndgrid(r, r) ;
f = @(x) (x) ; % identity: dummy function for this example.
X1
X2
f(X1 .* X2)
производства:
X1 =
-2 -2 -2 -2 -2
-1 -1 -1 -1 -1
0 0 0 0 0
1 1 1 1 1
2 2 2 2 2
X2 =
-2 -1 0 1 2
-2 -1 0 1 2
-2 -1 0 1 2
-2 -1 0 1 2
-2 -1 0 1 2
ans =
4 2 0 -2 -4
2 1 0 -1 -2
0 0 0 0 0
-2 -1 0 1 2
-4 -2 0 2 4
Это было основано на this answer, и это Matlab Evaluate Function over gridded domain help текст.
я могу осуществить это в Джулию с набором петель над местах сетки:
N = 2 ;
r = -N:N ;
twoNplusOne = 2*N + 1 ;
F = zeros(twoNplusOne, twoNplusOne) ;
f = identity ; #say
for n = 1:twoNplusOne
for m = 1:twoNplusOne
F[ n, m ] = f(r[n]*r[m]) ;
end
end
F
... но было интересно, если есть более естественный (и эффективный) способ сделать это в Джулию?
Я уверен, что это канонический подход :-) –