我在Octave中集成时遇到了一些问题。 我有以下代码:
α= 3;
函数y = f(x)
y = x * x * a;endfunction可写
[V,IER,nfun,ERR] =四( “F”,0,3);
功能上的'a'给了我麻烦。 Octave说'a'是不确定的。所以,如果我代替'a'在函数y中输入数字3,一切正常。但是,我想在函数中使用'a',这样我就可以改变它的价值..我该怎么做?
由于
答案 0 :(得分:1)
您可以使用函数闭包,它将封装a
。
function f = makefun (a)
f = @(x) x * x * a;
endfunction
f = makefun(3)
[v, ier, nfun, err] = quad(f, 0, 3);
答案 1 :(得分:1)
有两个主要选项。
正如voithos所说,选项1是'a'对函数的输入。
选项2是将'a'定义为全局变量。
global a=3;
function y = f (x)
global a
y = x*x*a;
endfunction
[v,ier,nfun,err]=quad("f",0,3);
这将导致'a'在函数内外都是相同的值。
答案 2 :(得分:0)
您的功能实际上取决于两个值,x和a,因此:
f=@(x,a) x*x*a
[V, IER, NFUN, ERR] = quad (@(x) f(x,3), A, B, TOL, SING)
我使用内联函数,因为我觉得它更容易理解。