1

我写了一个函数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 没有获得足够的输入参数)

4

1 回答 1

1

饲料integral2不是用feval,而是用feval_wrapper定义为

feval_wrapper = @(x,y) arrayfun(feval, x, y)

x现在y可以是数组(大小相同)。这是有效的,因为arrayfun调用feval输入数组的每一对元素xy并给出一个数组作为结果。

作为旁注,“feval”可能不是您的函数的好名字,因为 Matlab 有一个内置的feval.

于 2013-08-15T16:44:10.457 回答