Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
只有长度为1的数组才能转换为Python标量_Python_Python 2.7_Python 3.x_Matplotlib_Complex Numbers - Fatal编程技术网

只有长度为1的数组才能转换为Python标量

只有长度为1的数组才能转换为Python标量,python,python-2.7,python-3.x,matplotlib,complex-numbers,Python,Python 2.7,Python 3.x,Matplotlib,Complex Numbers,如何更改运行时的代码?必须在实轴和虚轴上运行产生函数w(ω)=1/(1+1j*ω)的图形 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)

如何更改运行时的代码?必须在实轴和虚轴上运行产生函数
w(ω)=1/(1+1j*ω)
的图形

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)

回答您的具体问题:错误源于
omega
是一个数组,但
arange
需要标量参数:从到步长值。由于它得到一个长度为1的数组(
omega
),因此无法确定应选择哪个值作为范围的起点。因此错误:
omega
无法转换为标量(这将使
arange
工作)


但是现在还不清楚为什么要这样绘制,以及你到底想在数组中放入什么
a

,你有什么理由不直接写
a=1/(1+1j*omega)