我编写了一个函数feval
,它接受两个参数并吐出一个数字。
现在我想使用命令integral2
来集成我的函数feval(x,y)
。
问题似乎是integral2
认为我有一个函数可以将两个数组作为参数并对它们应用成对运算。不幸的是,这种情况并非如此。我的功能只能使用2个数字而不能使用完整数组。是否有任何标准方法可以使这项工作?
实际上,这是我现在的代码,MATLAB声称 q = integral2(@(x,y)arrayfun(func_cross_scat,x,y),0,2 * pi,0,pi); 我的函数(feval,我重命名为func_cross_scat没有得到足够的输入参数)
答案 0 :(得分:1)
Feed integral2
不是feval
,而feval_wrapper
定义为
feval_wrapper = @(x,y) arrayfun(feval, x, y)
x
和y
现在可以是数组(大小相同)。这是有效的,因为arrayfun
为输入数组feval
,x
的每对元素调用y
,并给出一个数组作为结果。
作为旁注,“feval”可能不是你的函数的好名字,因为Matlab有一个内置的feval
。