對于以下代碼,
import numpy as np
import matplotlib.pyplot as plt
import math
f = input("輸入f的值:")
Ts = input("Enter value of Ts: ")
f=int(f)
Ts=int(Ts)
fs=1/Ts
fs=int(fs)
n=np.linspace(-1,1, fs)
#print(n)。
#print(np.pi)。
x=np.cos(2*(np.pi)*f*n*Ts)*(math.exp((-n)*Ts) )
plt.scatter(n,x)
顯示的錯誤是只有大小為1的陣列可以被轉換為Python標量。
誰能告訴我為什么會出現這個錯誤,以及如何解決和尋找并除錯這樣的錯誤
uj5u.com熱心網友回復:
你可以使用 uj5u.com熱心網友回復: 改變: to: 這將解決這個問題。 但是我認為你有一些問題,我不確定你到底想做什么,但是在這三行之后: "fs "最終將以0的值結束,無論你的輸入是什么:
標籤: 上一篇:如何修復npm丟失的腳本
math.exp((-n)*Ts)試圖從內置的math模塊中呼叫math.exp于NumPy陣列 n * Ts,但是math.exp不是-n * Ts作為一個Python標量(一個數字,如1, 2. 3,等等),這就失敗了,因為陣列不是數字(然而,正如錯誤資訊所說,"大小為1的陣列可以轉換為Python標量",所以像math.exp(np.array([3]))這樣的代碼就可以了)。
np.exp 而不是 math.exp。x=np.cos(2*(np.pi)*f*n*Ts)*(math.exp((-n)*Ts))
x=np.cos(2*(np.pi)*f*n*Ts)*(np.exp((-n)*Ts))
Ts=int(Ts)
fs=1/Ts
fs=int(fs)
