得出相同的结果吗?

问题描述 投票:-1回答:1

我想将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个代码是否得到相同的结果

python matlab
1个回答
0
投票

函数中for循环中的语句未缩进。

尝试像这样缩进,看看会发生什么:

def shift(narr): 
    for i in range(1,len(narr)):
        narr[i-1]=narr[i] return narr 
© www.soinside.com 2019 - 2024. All rights reserved.