其他分享
首页 > 其他分享> > 2021-04-07

2021-04-07

作者:互联网

我刚学Python
把MATLAB代码写成Python
MATLAB:
TTP=rand(nnllmm,s0);
xrec=rand(2*k0-1,s0,s0);

XCS=zeros(size(TTP,1),1)
nnt=size(xrec,1)

for ii=1:s0
for jj=ii+1:s0
nt=round((TTP(:,ii)-TTP(:,jj))/dt)+k0;
ss=max(nt,1);
net=min(ss,nnt);
XCS=XCS+xrec(net,jj,ii);
end
end

下面是Python代码
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

nn=11
ll=12
mm=13
dx=10
dt=0.01
k0=100
s0=3

TTP=np.random.rand(nnllmm,s0)
xrec=np.random.rand(2*k0-1,s0,s0);
XCS=np.zeros((np.size(TTP,0),1))
nnt=np.size(xrec,0)

for ii in range(s0):
for jj in range(ii+1,s0):
nt=np.round((TTP[:,ii]-TTP[:,jj])/dt)+k0
net=np.minimum(np.maximum(nt,1),nnt)
XCS=XCS+xrec[net,jj,ii]

最后一行报错: arrays used as indices must be of integer (or boolean) type
请问该怎么解决,谢谢辣

标签:s0,07,04,TTP,ii,2021,jj,xrec,np
来源: https://blog.csdn.net/qq_44576772/article/details/115496203