[英]In Python, how do I define an arbitrary number of indexed variables in a function?
首先,預先感謝您對我對 Python 的新手理解。 我來自 MATLAB,所以希望能提供一些背景信息。
在 MATLAB 中,我將數學函數定義為:
f =@ (x) 2*x(1)^2 + 4*x(2)^3
在 Python 中,我寫道:
def f(x):
return 2*x(1)**2 + 4*x(2)**3
但是我在另一個函數中出現錯誤(用於創建梯度向量的有限差分方法):
line 9, in f
return 2*x(1)**2 + 4*x(2)**3
TypeError: 'numpy.ndarray' object is not callable
(包含 n 個條目的輸入 X1 由原始方程中的變量數指定,被反饋到函數 f(x) 以在特定點進行評估)。
我很高興分享我到目前為止編寫的代碼(或 MATLAB 中的工作代碼)以供參考,但我想知道的主要問題是如何像在 MATLAB 中使用 x 那樣為方程創建任意數量的變量(1),x(2)...x(n)。
Python 中的數組索引是用方括號完成的,而不是圓括號。 請記住,Python 的索引從 0 開始,而不是 1。
def f(x):
return 2*x[0]**2 + 4*x[1]**3
您的函數名為f
但您正在嘗試調用x(2)
。 您收到錯誤是因為您試圖將x
作為函數調用,但x
是一個 numpy 數組
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.