-3

我正在尝试将 Matlab 程序转换为 Python。它没有给我想要的结果。

Matlab代码:

for jj=1:data_length            %for each symbol in the input symbol sequence

    [a,b]= min(abs(phase_recovered(jj)-U_alphabets));    

    quantized(jj)=U_alphabets(b);     
end

这里quantized是第一次在for循环中初始化。但是,在 Python 中,它给出了错误

quantized未定义。

所以我定义quantized为零长度等于data_length

蟒蛇代码:

quantized=zeros(data_length,dtype='complex')
for jj in arange(0,data_length):
    diff=np.absolute((phase_recovered[jj]-u_alphabets))
    a=diff.argmin()
    b=diff[a]
    quantized[jj]=u_alphabets[b]
4

1 回答 1

1

我认为你不想要 line b = diff[a],你想要更像:

quantized=zeros(data_length,dtype='complex')
for jj in arange(0,data_length):
    diff=np.absolute((phase_recovered[jj]-u_alphabets))
    b = diff.argmin()
    quantized[jj] = u_alphabets[b]

此外,如果 u_alphabets 恰好已排序,您可以使用 此处描述的解决方案。

于 2013-08-15T14:09:21.813 回答