2

嗨,我正在尝试在 Python 中转换 Matlab 代码,但是当我转换为 Python 时,它给出了错误长度的 Matlab 代码

a=N_bits/4+1;
T=20e-3;
Fc=8/T
dt=1/8/Fc;
t=dt:dt:a*T;
length(t)

输出:

1664

Python代码

N_bits=1e2
a=int((N_bits/4)+1)
T=20e-3
Fc=8/T
dt=(1/8)/Fc
t=arange(dt,(a*T),dt)
print(len(t))

输出:

1663
4

1 回答 1

2

arange 的停止(第二个参数)被排除在输出中。

>>> arange(0, 10, 2)
array([0, 2, 4, 6, 8])
>>> len(_)
5

根据范围文档字符串:

arange([start,] stop[, step,], dtype=None)

...

值在半开区间内生成[start, stop)

要使用 matlab 获得相同的结果,请调整 stop(第二个参数):

arange(dt, (a*T)+dt, dt)
于 2013-07-28T10:20:32.403 回答