Matlab在Python中的使用

时间:2016-08-22 16:04:06

标签: python matlab numpy scipy

我正在将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中,因此我可以寻求你的帮助!

谢谢!

1 个答案:

答案 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中做了很多工作,可能很难翻译代码。