我想将Matlab更改为Python,z是复数列表
reg = zeros(1,4)
for k = 1:length(z)
reg = [reg(2:4) z(k)]; % shift left
st_vec = [st_vec k-2+mu2_tr]; % symbol timing collection
r2 = fdpara(mu2_tr,0.5) * reg.';
结果
[-5.717085702249080e-08 - 6.927730899947189e-08i, 8.367019142510646e-10 - 1.120440214253980e-07i, ....]
我在Python中尝试了这两种方法
reg = np.zeros(4)
def shift(narr):
for i in range(1,len(narr)):
narr[i-1]=narr[i]
return narr
for k in range(z.size):
reg = shift(reg)
reg[3] = z[k]
st_vec=[st_vec,k-2+mu2_tr]
r2=fdpara(mu2_tr,0.5)*reg.T
结果
[-4.82211315e-08 1.04728867e-07 2.99251106e-07 1.97052411e-07]
它看起来与众不同,所以我更改了reg
reg1 = np.append(reg1, z[k])
reg1 = np.delete(reg1, [0], 0)
结果
[-4.82211315e-08-2.41742009e-08j 1.04728867e-07-2.54491011e-07j, ....]
该Python代码正在运行,所以我认为它是相同的代码,但是经过一些方程式后,我遇到了错误。因此,首先,我想检查代码是否相等,因为reg对我的代码很重要。请让我知道您的建议。我想检查2个代码是否得到相同的结果
函数中for循环中的语句未缩进。
尝试像这样缩进,看看会发生什么:
def shift(narr):
for i in range(1,len(narr)):
narr[i-1]=narr[i] return narr