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 の stop (2 番目の引数) は出力から除外されます。

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

arange docstring によると:

arange([開始,] 停止[, ステップ,], dtype=なし)

...

値は半開区間内で生成されます[start, stop)

matlab で同じ結果を得るには、stop (2 番目の引数) を調整します。

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