python与matlab代码等价切换
通过Python的PyCharm专业版进行代码开发和调试 #生活技巧# #工作学习技巧# #工作技能认证#
python与matlab代码等价切换
1、高斯模糊与过滤函数
1.1、在matlab中:
kersiz = 2*ratio - 1; sig = (1/(2*(2.7725887)/ratio^2))^0.5; BlurD.K = fspecial('gaussian',[kersiz kersiz],sig); I_HS = imfilter(I_REF, BlurD.K, 'circular'); 1234'
1.2、在python中:
sig = 1 / (2 * (2.7725887) / math.pow(ratio, 2)) ** 0.5 kernel = np.multiply(cv2.getGaussianKernel(9, sig), cv2.getGaussianKernel(9, sig).T) new_lrhs = [] for i in range(Data.shape[2]): temp = signal.convolve2d(Data[:, :, i], kernel, boundary='wrap', mode='same') temp = np.expand_dims(temp, -1) new_lrhs.append(temp) Data = np.concatenate(new_lrhs, axis=-1) 12345678'
这两个计算的结果是等价的。
2、三维快速傅里叶变换函数(fft2)
2.1、在matlab中:
d = ifft2(c); 1'
2.2、在python中:
G = [] for i in range(NB): G.append(np.fft.fft2(a[:, :, i])) G = np.array(G) G = G.swapaxes(0, 1) G = G.swapaxes(1, 2) 123456'
3、三维数据的reshape
3.1、在matlab中:
a = reshape(X', NW, NH, NB); 1'
3.2、在python中:
a = np.reshape(np.transpose(X),(NW,NH,NB),order="F") 1'
4、奇异值分解
4.1、在matlab中
[U,S,V] = svd(Xn,'econ'); S = max(S-lam,0); Y(:,idx) = U(:,1:size(S,1))*S*V(:,1:size(S,2))'; 123'
4.2、在python中
[U, S, V] = svd(Xn, 'econ') S[:] = [x - lam for x in S] S[S < 0] = 0 S = np.diag(S) Y[:, idx] = U[:,0:S.shape[0]].dot(S).dot(V[0:S.shape[1],:]) 12345'
5、插值函数
5.1、在matlab中:
R(i,:) = spline(x, ikonos_sp(valid_ik_bands,i+1), xx); 1'
5.2、在python中
ipo3 = spi.splrep(x, ik[valid_ik_bands-1,i+1]) # Generate model parameters R[i,:] = spi.splev(xx, ipo3) # Generate interpolation points 12'
网址:python与matlab代码等价切换 https://www.yuejiaxmz.com/news/view/422417
相关内容
Matlab与pythonMatlab 透视变换原理 代码实现
Matlab代码实践——BP神经网络
MATLAB图像处理(包括图像类型转换)
python爬虫代码
现代控制理论(机器人方向)考核要求与Matlab(Octave)简明教程
python计算机毕设【附源码】二手书交换平台(django+mysql+论文)
【Matlab 六自由度机器人】关于灵活工作空间与可达工作空间的理解(附MATLAB推导代码)
一款Python实用神器,5 行 Python 代码 实现一键批量扣图
Matlab的for循环优化