我试着把这个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_L
和V_A_c
与MATLAB给出的值和形状相同,但我仍然无法计算V_c。有什么建议吗?
1条答案
按热度按时间oalqel3c1#
你提到的错误,来自于你想比较两个Tensor(矩阵)的元素。使用np.maximum。
考虑到图块操作是正确的,并且在您的示例中N_p为85: