如何在Matlab中使用quadl函数的附加变量?

问题描述 投票:0回答:1

我试图将一个函数从另一个.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

但这不起作用。

我也试过声明一个全局变量,但它给了我一个未声明的变量错误。

感谢帮助!

matlab integral
1个回答
1
投票

首先,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功能的表达,你需要使用yx

syms
© www.soinside.com 2019 - 2024. All rights reserved.