python - 从 MATLAB 转换的 Python 代码的不同输出
问题描述
我正在将以下代码从 MATLAB 转换为 Python。MATLAB代码如下:
for vfct=1:maxit
EVmat = kron((reshape(Vold,pnum,mnum)*(pr_mat_m'))',ones(pnum,1));
RHSmat = Rmat + beta*EVmat;
[V,polind] = max(RHSmat,[],2);
pol = pgrid(polind);
solerr = max(abs(V(:)-Vold(:)));
polerr = max(abs(pol(:)-polold(:)));
if (mod(vfct,5)==1)
disp(['For iter ' num2str(vfct) ', VF error = ' num2str(solerr)])
end
if (solerr<soltol)
break
end
Vold = V;
polindold=polind;
polold = pol;
end
我在下面尝试的 Python 代码:
for vfct in range(1,maxit+1):
EVmat = np.kron((np.dot(Vold.reshape(pnum,mnum) , pr_mat_m.T)).T,np.ones((pnum,1)))
RHSmat = Rmat + beta*EVmat;
V, polind = RHSmat.max(1),np.argmax(RHSmat,axis=1)
pol = pgrid[polind]
solerr = np.amax(abs(V[:]- Vold[:]))
polerr = np.amax(abs(pol[:]- polold[:]))
if vfct % 5 == 1:
print(f"Error at iteration {vfct} is kkk {solerr}.")
if solerr < soltol:
break
Vold = V;
polindold=polind;
polold = pol;
然而,我的结果与 MATLAB 产生的结果大不相同。但我找不到任何问题。是什么导致了输出的差异?
解决方案
推荐阅读
- c++11 - 如何将具有 var 长度的编译时数组传递给构造函数?
- unity3d - 如何解决以下问题?
- reactjs - 不变违规:元素类型无效:期望字符串或类/函数但得到:对象-可能的 Babel 问题
- css - CSS 访问链接
- java - 没有自定义工具栏的 ActionBarDrawerToggle
- python - 永久删除 Anaconda 和 Jupyter
- android - 未调用 BroadcastReceiver (Kotlin)
- cassandra - 以编程方式访问 cassandra nodetool API
- javascript - 删除动态生成的行
- swift - RxSwift:使用 DisposeBag 的最佳实践是什么?