我试图将一个函数从另一个.m文件传递到一个quadl调用,在评估函数时也需要一个额外的变量。
我目前的电话看起来像:
fun=@fun1
min = 0;
max = 2;
y=quadl(fun, min, max, 0.00001);
我想让fun1从最小到最大进行评估。
我在fun1.m文件中的功能是:
function func=fun1(x)
func = x^2+x+y
如何传递'y'变量?
我试图将四方调用更改为:
y=quadl(fun1(y), min, max, 0.00001);
和:
y=quadl(fun1(y), min, max, 0.00001);
和功能:
function func=fun1(x,y)
func = x^2+x+y
但这不起作用。
我也试过声明一个全局变量,但它给了我一个未声明的变量错误。
感谢帮助!
首先,quadl
将在未来版本中删除,因此最好使用integral
。
你应该使用:
function func=fun1(x,y)
func = x.^2+x+y; % with .^
然后在你的另一个脚本中,你将fun
声明为x
的函数:
y = 5;
fun=@(x)fun1(x,y);
min = 0;
max = 2;
y=integral(fun, min, max);
如果你坚持使用quadl
,你可以做同样的事情:
y = 5;
fun=@(x)fun1(x,y);
min = 0;
max = 2;
y=quadl(fun, min, max, 0.00001);
编辑:为了在qazxsw poi整合后保持qazxsw poi功能的表达,你需要使用y
和x
:
syms