Matlab(Octave)離散ラプラシアン演算子(関数)del2()のPython/Numpy相当物が必要です。私はいくつかのPythonソリューションを試しましたが、どれもdel2の出力と一致していないようです。オクターブ上で私は、これは私がまたPythonの離散ラプラシアン(del2相当)
を試してみました[[ 23 19 15 11]
[ 3 -1 0 -4]
[ 4 0 0 -4]
[-13 -17 -16 -20]]
結果を与える
import numpy as np
from scipy import ndimage
import scipy.ndimage.filters
image = np.array([[3, 4, 6, 7],[8, 9, 10, 11],[12, 13, 14, 15],[16, 17, 18, 19]])
stencil = np.array([[0, 1, 0],[1, -4, 1], [0, 1, 0]])
print ndimage.convolve(image, stencil, mode='wrap')
をしようとしたのPythonで
0.25000 -0.25000 -0.25000 -0.75000
-0.25000 -0.25000 0.00000 0.00000
0.00000 0.00000 0.00000 0.00000
0.25000 0.25000 0.00000 0.00000
結果を与える
image = [3 4 6 7; 8 9 10 11; 12 13 14 15;16 17 18 19]
del2(image)
持っています結果
[[ 6 6 3 3]
[ 0 -1 0 -1]
[ 1 0 0 -1]
[-3 -4 -4 -5]]
を与える
scipy.ndimage.filters.laplace(image)
だから出力のいずれもがお互いに一致するように見えるん。オクターブコードdel2.mは、それがラプラシアン演算子であることを示しています。何か不足していますか?
内部には、オペレータは、Pythonにはないところ、全て同じ(MATLABは、明らかに4分割しています)。境界では、 'mode =" wrap "を' laplace() 'にも渡すことで、2つのPythonバージョンを同じにすることができます。しかし、Matlabの結果を見るだけで、Matlabが境界線上で何をするのか分かりません。 –
実際には、立方体の外挿を行います。 http://www.mathworks.it/it/help/matlab/ref/del2.html 最終的な例を 'laplace()'で試してみると、境界線についても正しい結果を得る方法。 – astrojuanlu