簡體   English   中英

在 Python 中,如何在函數中定義任意數量的索引變量?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM