2016-11-10 1 views
1

간단한 코드 반환 다음 형식 오류 : 복근에 대한 잘못된 피연산자 유형() : 내가 함께 P와 R을 대체형식 오류 : 복근에 대한 잘못된 피연산자 유형() '목록'

from scipy.signal import residue 

def x_filter(): 
    p = [complex(-2505.707527665261,3165.104073896715),complex(-2505.707527665261,-3165.104073896715),complex(-3449.516723926777,1032.914743287806),complex(-3449.516723926777,-1032.914743287806)] 
    r = [complex(-1981.17378001573,2672.79673635191),complex(-1981.17378001573,-2672.79673635191),complex(1981.17378001573,-10000.37025226017),complex(1981.17378001573,10000.37025226017)] 
    k = [] 

    [b,a]=residue(r,p,k) 

filtered = x_filter() 

'목록'

p = [-2505.707527665261+3165.104073896715j,-2505.707527665261-3165.104073896715j,-3449.516723926777+1032.914743287806j,-3449.516723926777-1032.914743287806j] 
r = [-1981.17378001573+2672.79673635191j,-1981.17378001573-2672.79673635191j,1981.17378001573-10000.37025226017j,1981.17378001573+10000.37025226017j] 

...하지만 아무런 차이가 없습니다.

내가 잘못 했나요? 해결 방법이 있습니까?

나는 bad operand type for abs(): 'list'을 언급했지만, scipy.signal.residue (내 코드 아님)에서 __builtin __. abs() 함수가 사용 되었기 때문에이 솔루션을 적용 할 수 없습니다.

+0

왜 처음부터 목록을 전달하려고합니까? –

답변

2

문서 docs을 보면 출력물을 잘못 입력 한 것으로 보입니다. residue B 및 소요 R, PK를 반환한다.

세 번째 매개 변수 (tol)는 숫자 여야하며 목록을 전달해야합니다.


잘못된 방법을 사용했을 수 있습니다. scipy.signal.invres을 보시고 찾고 계신 것이 틀림 없습니다.

+0

아, 알 겠어! 나는 너무 당황 스럽다. 예, scipy.Signal.invres는 제가 찾고있는 것입니다. 말씀해 주셔서 대단히 감사합니다. – IanHacker

+1

다시 한번 감사 드리며 변명을하게하겠습니다. MATLAB의 residue()는'[b, a] = residue (r, p, k)뿐만 아니라'[r, p, k] = residue (b, a) '. 그래서, 나는 그들을 섞었다. – IanHacker

관련 문제