我正在将Matlab代码翻译成Python代码,我需要你的帮助才能知道如何在Matlab中翻译这一行。
Matrix = convn(Matrix2, ones(x,x,x)/x^3, 'same');
我问,因为Matlab中的conv2在Python中没有直接的等价物,我不得不使用这里提出的解决方案:Is there a Python equivalent of MATLAB's conv2 function?
旋转图像的地方:
def conv2(x, y, mode='same')
return np.rot90(convolve2d(np.rot90(x, 2), np.rot90(y, 2), mode=mode),
因此我假设我们必须做这样的事情,但是在3D中,因此我可以寻求你的帮助!
谢谢!
答案 0 :(得分:0)
好吧,我有两个疯狂的想法。
一个是我们可以在Python中直接使用MATLAB的'convn'。通过这样做,用'eng = matlab.engine.connect_matlab()'在Python中打开一个MATLAB服务器。
现在,我们可以使用属于MATLAB的所有内容。
Matrix = eng.convn(Matrix2,ones(x,x,x)/ x ^ 3,'same')
事实上,当这些代码以小尺寸的矩阵结束时,我们可以使用此方法在Python中运行整个旧代码。我们用
将其翻译为'Numpy''numpyArray = np.array(MATLAB_array,dtype = np.XXX)'。
小心点。如果矩阵的尺寸很大,则此转换将很慢。
另一个疯狂的想法是在'Tensorflow'中使用'tf.nn.conv3d'。副作用是间接的。我们必须使用'sess = tf.Session()'构建一个运行它的会话。
我不是程序员,但我认为MATLB不愿意被Python取代。如果你在MATLAB中做了很多工作,可能很难翻译代码。