1 回答

TA貢獻1874條經驗 獲得超12個贊
通常不能保證 theta 值數組實際上包含您要查詢的值。作為一個例子考慮
theta = np.array([1,2,3,4])
r = np.array([8,7,6,5])
現在您想知道 r at 的值theta0 = 2.5,但由于該值不是它的一部分,theta因此在 中沒有對應的值r。
因此,您可能決定在 之后的 theta 處找到 r 的值theta0,在這種情況下,3 是 2.5 之后 theta 中的下一個值,因此您可能正在尋找 r == 6,
theta0 = 2.5
print(r[np.searchsorted(theta, theta0)]) # prints 6
或者您可能想要在 theta 上插入 r 值,在這種情況下,2.5 介于 2 和 3 之間,因此您正在尋找 6.5,它介于 7 和 6 之間,
theta0 = 2.5
print(np.interp(theta0, theta, r)) # prints 6.5
或者更一般地說,你有一個實際的函數,它定義了r(theta). 這里,
theta = np.array([1,2,3,4])
rf = lambda x: -x + 9
r = rf(theta)
print(r) # prints [8,7,6,5]
print(rf(theta0)) # prints 6.5
您的示例的最后一個案例看起來像
theta = np.linspace(0, 2*np.pi, 3001)
# Writing the equation
r = lambda theta: 5*np.cos(64*theta)
ax1 = plt.subplot(111, polar=True)
ax1.plot(theta, r(theta), label='CURVE 4: r = 5cos(64θ), [0, 2π)')
print(r(np.pi/2)) # prints 5
plt.show()
添加回答
舉報