Python中的4D矩阵运算-从MATLAB转换

wgeznvg7  于 2022-11-24  发布在  Matlab
关注(0)|答案(1)|浏览(190)

我试着把这个MATLAB代码翻译成Python:
MATLAB:V_c = delta* max(V_L, repmat(V_A_c,[N_p 1]) - NM )
其中这些是4D数组:
V_c是不同状态下的延续值,(应具有形状81、75、15、31)V_L是初始值,(具有形状81、75、15、31)V_A_c是最佳选择下的调整值(具有形状1、75、15、31)
NM是一个数字(NM = κ*np.exp(P0)N_p是网格的长度
这是我尝试的python代码
Python:V_c = delta * np.amax(V_L,(np.tile(V_A_c,(([N_p,1]))))-NM)
我得到错误,数组的长度是不同的,只有整数标量数组可以转换为标量索引。
在Python中,我的V_LV_A_c与MATLAB给出的值和形状相同,但我仍然无法计算V_c。有什么建议吗?

oalqel3c

oalqel3c1#

你提到的错误,来自于你想比较两个Tensor(矩阵)的元素。使用np.maximum。
考虑到图块操作是正确的,并且在您的示例中N_p为85:

V_c = delta * np.maximum(V_L, np.tile(V_A_c,(N_p,1,1,1)) - NM )

相关问题