這個功能給了我一些悲傷,我認爲有可能是四捨五入或者不像我期望的那樣。我試着以小增量改變phi,並且AFn的價值以一種絕對不應該跳躍的方式跳躍。它應該是這樣的一個圓形的輻射模式:什麼導致這個簡單的函數繪製不佳?
它有正確排序的趨勢,但顯然有些不對勁。 這裏是代碼:
import numpy as np
import matplotlib.pyplot as plt
N = 7 #number of arrays
phi = np.arange(0, np.pi, np.pi/100)`
def ArrayFact(phi):
i, k, d = 0.0, 4.0, 1.0
while i<N:
d = d+2
AF = AF + np.cos(k*d * np.cos(phi)) #array factor formula for nonuniform baselines
i=i+1
AFn = (1/float(N)) * AF
return abs(AFn)
plt.figure(figsize=(12, 8))
plt.polar(phi, ArrayFactor(phi, N, k) * np.sin(phi))
plt.legend(loc='lower right', bbox_to_anchor = (1, 0))
plt.show()
任何幫助將不勝感激。
編輯:謝謝你們,這篇文章從開始到結束都是一團糟,但這一切都是爲了我們所有人的最佳選擇。我想我們都在這裏學到了一些東西,也許不是關於Python,而是關於人。
讓我們通過固定的縮進開始這樣我們才能準確評估。 – pstatix
並刪除'arange(... pi/100)'後的錯誤後退勾號,以便我們可以輕鬆地複製和粘貼。 \t 並根據您定義的名稱而不是'ArrayFactor'調用函數'ArrayFact'。並在某處定義'k',以便我們可以實際使用您的情節調用。至少有兩個額外的錯誤會導致您發佈的代碼引發錯誤並且無法使用。 – saintsfan342000
我認爲這是尖刻的,因爲你只有100分。 np.pi/100我認爲它是100分。用1000看起來更好。看我的答案。 –