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