Python->;TypeError:不支持的操作数类型^

Python->;TypeError:不支持的操作数类型^,python,algorithm,list,numpy,equation,Python,Algorithm,List,Numpy,Equation,我正在努力使用Python代码。我想这样做 这是我的代码: fs= 5000 T=np.linspace(0,2.2,fs) n=np.arange(fs*2.2) u=[] for x in T: if x < 0.2: u.append(x * np.sin(34*np.pi*n/fs)) if (x >= 0.2 and x < 0.8): u.append(1/x * np.log10(x+1)) if x >

我正在努力使用Python代码。我想这样做

这是我的代码:

fs= 5000
T=np.linspace(0,2.2,fs)
n=np.arange(fs*2.2)
u=[]
for x in T:
    if x < 0.2:
        u.append(x * np.sin(34*np.pi*n/fs))
    if (x >= 0.2 and x < 0.8):
        u.append(1/x * np.log10(x+1))
    if x >= 0.8 and x < 1.4:
        u.append((x^2 + 1) * np.sin(12*np.pi*n/fs))
    if x >= 1.4:
        u.append(np.sin(20*np.pi*n/fs + x/3))
fs=5000
T=np.linspace(0,2.2,fs)
n=np.arange(fs*2.2)
u=[]
对于T中的x:
如果x<0.2:
u、 附加(x*np.sin(34*np.pi*n/fs))
如果(x>=0.2和x<0.8):
u、 附加(1/x*np.log10(x+1))
如果x>=0.8且x<1.4:
u、 附加((x^2+1)*np.sin(12*np.pi*n/fs))
如果x>=1.4:
u、 附加(np.sin(20*np.pi*n/fs+x/3))
python返回:

  File "D:/Semestr V/Podstawy Transmisji Danych/labki-ZAD3.py", line 20, in <module>
    u.append((x^2 + 1) * np.sin(12*np.pi*n/fs))

TypeError: unsupported operand type(s) for ^: 'numpy.float64' and 'int'
文件“D:/Semestr V/Podstawy Transmisji Danych/labki-ZAD3.py”,第20行,在
u、 附加((x^2+1)*np.sin(12*np.pi*n/fs))
TypeError:不支持^:'numpy.float64'和'int'的操作数类型

幂运算符是
**
^
是位异或。

幂运算符是
**
^
是位异或。

除了错误
^/**
,最好的方法是使用用于快速矢量化结果的:

fs= 5000
x=np.linspace(0,2.2,fs)
n=3

functions=[ 
lambda x : x * np.sin(34*np.pi*n/fs), 
lambda x : 1/x * np.log10(x+1),
lambda x : (x**2 + 1) * np.sin(12*np.pi*n/fs),
lambda x : np.sin(20*np.pi*n/fs + x/3)]

conditions=[x < 0.2,(x >= 0.2) & (x < 0.8), (x >= 0.8) & (x < 1.4), x >= 1.4]

res=np.piecewise(x,conditions,functions)
plt.plot(x,res)
fs=5000
x=np.linspace(0,2.2,fs)
n=3
函数=[
λx:x*np.sin(34*np.pi*n/fs),
λx:1/x*np.log10(x+1),
λx:(x**2+1)*np.sin(12*np.pi*n/fs),
λx:np.sin(20*np.pi*n/fs+x/3)]
条件=[x<0.2,(x>=0.2)和(x<0.8),(x>=0.8)和(x<1.4),x>=1.4]
res=np.分段(x,条件,函数)
plt.绘图(x,res)


只需对所有值循环
n

除了错误
^/**
,最好的方法是使用用于快速矢量化结果的:

fs= 5000
x=np.linspace(0,2.2,fs)
n=3

functions=[ 
lambda x : x * np.sin(34*np.pi*n/fs), 
lambda x : 1/x * np.log10(x+1),
lambda x : (x**2 + 1) * np.sin(12*np.pi*n/fs),
lambda x : np.sin(20*np.pi*n/fs + x/3)]

conditions=[x < 0.2,(x >= 0.2) & (x < 0.8), (x >= 0.8) & (x < 1.4), x >= 1.4]

res=np.piecewise(x,conditions,functions)
plt.plot(x,res)
fs=5000
x=np.linspace(0,2.2,fs)
n=3
函数=[
λx:x*np.sin(34*np.pi*n/fs),
λx:1/x*np.log10(x+1),
λx:(x**2+1)*np.sin(12*np.pi*n/fs),
λx:np.sin(20*np.pi*n/fs+x/3)]
条件=[x<0.2,(x>=0.2)和(x<0.8),(x>=0.8)和(x<1.4),x>=1.4]
res=np.分段(x,条件,函数)
plt.绘图(x,res)


只需对所有值循环
n

没有问题,标题本身没有意义。出于文体目的,请使用if,elif,else约定作为逻辑。可能的重复项,因为没有问题,标题本身没有意义。出于文体目的,请使用if,elif,逻辑的else约定。可能与的重复