gpt4 book ai didi

python - 在Python中重新排序FFT

转载 作者:太空宇宙 更新时间:2023-11-03 16:41:32 25 4
gpt4 key购买 nike

我是 python 和 FFT 新手。我在 Python 中执行了一个小任务来查找给定数量的数据点的洗牌顺序。

我的目标是为 N 个数据点提供如下所示的输出。这里N=8,所以我们有 3 组:

[0, 1, 0, 1, 0, 1, 0, 1]
[0, 0, 1, 1, 0, 0, 1, 1]
[0, 0, 0, 0, 1, 1, 1, 1]

我尝试过的代码如下。有人可以帮助我解决我的错误,并建议修改代码以产生所需的输出。

le=8
steps=int(math.ceil(math.log(le,2)))

pos2=[]
m=0
for k in range(0,steps):
x=2**k
#print x
pos1=[]
for i in range(0,le):
if m<x:
pos1.append(0)
m=m+1
else:
pos1.append(1)
m=0
pos2.append(pos1)

最佳答案

仅附加一个 1 后,您会立即返回附加 0。这是一个逻辑略有不同的工作版本:

import math

le = 8
steps = int(math.ceil(math.log(le, 2)))

pos2 = []
for k in range(0, steps):
x = 2**k
pos1 = []
while len(pos1) < le:
for i in range(0, x):
pos1.append(0)
for i in range(0, x):
pos1.append(1)
pos2.append(pos1)
print pos1

这将打印

[0, 1, 0, 1, 0, 1, 0, 1]
[0, 0, 1, 1, 0, 0, 1, 1]
[0, 0, 0, 0, 1, 1, 1, 1]

这里有一句话供您检查:

import math
le = 8

pos2 = [[(i // 2**k) % 2 for i in range(le)] for k in range(int(math.ceil(math.log(le, 2))))]

print pos2

关于python - 在Python中重新排序FFT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36733854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com