from __future__ import division
from math import *
import cmath
import numpy as np
taup=3
eps = 0.000001;
i = 0;
del1 = 2*taup/150.;
x=[]
for tau in np.arange(-taup,taup,del1):
i = i + 1;
j = 0;
fd = np.linspace(-5/taup,5/taup,151);
val1 = 1. - abs(tau) / taup;
val2 = pi * taup * (1.0 - abs(tau) / taup) * fd;
x=np.hstack(abs( val1 * np.sin(val2+eps)/(val2+eps)))
xi가 받고있는 출력은 1x151 인 마지막 반복 출력 일뿐입니다. 하지만 모든 반복이 행렬에 저장되기를 원합니다 (여기서는 151x151). 마지막 줄을 올바르게 가져올 수 없습니다.
1D 배열을 x
다음에 추가 할 수 있습니다 vstack
.
...
x.append(np.hstack(abs( val1 * np.sin(val2+eps)/(val2+eps))))
x = np.vstack(x)
또는 결과 배열을 미리 만드는 것이 더 빠를 수 있습니다.
taus = np.arange(-taup,taup,del1)
fd = np.linspace(-5/taup,5/taup,151);
x = np.empty((taus.size, fd.size))
for tau_i, tau in enumerate(taus):
# or:
# for tau_i in range(taus.size):
# tau = taus[tau_i]
i = i + 1;
j = 0;
val1 = 1. - abs(tau) / taup;
val2 = pi * taup * (1.0 - abs(tau) / taup) * fd;
x[tau_i] = np.hstack(abs( val1 * np.sin(val2+eps)/(val2+eps)))
추신 사실,이 코드는 for
어레이 작업 측면에서 사이클 없이 작성할 수 있습니다 . 그것은 당신을위한 운동입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다