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