2015-10-20 67 views
-1

如何更改該代碼用於運行?有必要運行在實軸和虛軸上生成功能w(omega) = 1/(1 + 1j*omega)的圖形。只有長度爲1的陣列可以被轉換到Python標量

import matplotlib.pyplot as plt 
import numpy as np 


def func(a): 
    for x in range(len(a)): 
     plt.plot([0, a[x].real], [0, a[x].imag], 'ro-', label='python') 
    limit=np.max(np.ceil(np.absolute(a))) # set limits for axis 
    plt.xlim((-limit,limit)) 
    plt.ylim((-limit,limit)) 
    plt.ylabel('Imaginary') 
    plt.xlabel('Real') 
    plt.show() 

omega = np.linspace(-4, 4, 251) 
a = np.arange(1) + 1j*np.arange(omega, 1) 
func(a) 
+0

是否有任何理由,你不只是寫'A = 1 /(1個+ 1J *歐米茄)'? –

回答

0

爲了回答您的具體問題:一個事實,即omega是一個數組出現錯誤,但arange預計標參數:從到臺階的值。由於它獲得長度爲1的數組(omega),因此無法確定它應該選擇哪個值作爲範圍的起始點。因此,錯誤:omega不能轉換爲標量(這將使arange工作)。

但目前還不清楚爲什麼你會這樣準確繪製,並且希望把陣列a中到底是什麼。