Python中文
首页
教程
问答
标签
搜索
登录
注册
在Python中,如何在函数中定义任意数量的索引变量?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>首先,提前感谢您接受我对Python的初学者理解。我来自MATLAB,希望这能提供一些背景知识</p> <p>在MATLAB中,我将数学函数定义为:</p> <pre><code>f =@ (x) 2*x(1)^2 + 4*x(2)^3 </code></pre> <p>在Python中,我写道:</p> <pre><code>def f(x): return 2*x(1)**2 + 4*x(2)**3 </code></pre> <p>但我的另一个函数(创建梯度向量的有限差分法)中有一个错误:</p> <pre><code>line 9, in f return 2*x(1)**2 + 4*x(2)**3 TypeError: 'numpy.ndarray' object is not callable </code></pre> <p>(包含n个条目的输入X1,由原始方程中的变量数量指定,反馈到函数f(x)中,以在特定点进行计算)</p> <p><strong>更新2021-10-22</strong> 下面我已经包含了代码以供参考<strong>此代码当前有效。</strong></p> <p>我想知道的主要事情是,我如何为一个方程创建任意数量的变量,就像我在MATLAB中使用x(1),x(2)…x(n)</em>所做的那样。有人告诉我应该使用<code>def f(*x)</code>,但是当我在f(x)上添加“*”操作符时,我得到了一个<code>tuple index out of range</code>错误</p> <pre><code>import math, numpy as np def gradFD(var_init,fun,hx): df = np.zeros((len(var_init),1)) #create column vector for gradient output # Loops each dimension of the objective function for i in range(0,len(var_init)): x1 = np.zeros(len(var_init)) #initialize x1 vector x2 = np.zeros(len(var_init)) x1[i] = var_init[i] - hx x2[i] = var_init[i] + hx z1 = fun(x1) z2 = fun(x2) # Calculate Slope df[[i],[0]] = (z2 - z1)/(2*hx) # Outputs: c = df #gradient column vector return c </code></pre> <p><strong>和测试脚本:</strong></p> <pre><code>import math import numpy as np from gradFD import gradFD def f(x): return 2*x[0]**2 + 4*x[1]**3 #THIS IS THE NOW WORKING CODE #return 2*x**2 + 4*y**3 var_init = [1,1] #point to evaluate equation at c = gradFD(var_init,f,1e-3) print(c) </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您的函数被调用<code>f</code>,但您正试图调用<code>x(2)</code>。出现错误是因为您试图将<code>x</code>作为函数调用,但<code>x</code>是一个numpy数组</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在乒乓球比赛中预测球的轨迹,对于AI球拍预测?
1 回答
如何在乒乓球游戏中阻止球
5 回答
如何在乘法和模中不乘空间?
5 回答
如何在乘法和除以2个不同的数字之间进行交换?
10 回答
如何在也是数据一部分的单个字符上拆分大字符串
5 回答
如何在乾草堆中找到針,有更好的解決方案嗎?
4 回答
如何在事件wxWidgets中传递自定义数据
8 回答
如何在事件中使用lambda i=i?
1 回答
如何在事件中心只接收最近的数据
7 回答
如何在事件发生之前保持云函数运行?
1 回答
如何在事件发生后使页面重定向到同一页面
3 回答
如何在事件回调之间保持python生成器的状态
8 回答
如何在事件处理程序(pythonsocket、sphinx)中保留docstring
4 回答
如何在事件处理程序中更改wxRichTextCtrl的光标位置?
5 回答
如何在事件处理程序中访问外部对象?
8 回答
如何在事件循环中将协程打包为正常函数?
3 回答
如何在事件循环之外运行协同程序?
6 回答
如何在事件循环结束时为并发未来的所有线程调用类方法?
10 回答
如何在事件文件中只保留一份摘要?
5 回答
如何在事件模板中添加事件
4 回答