在Matlab中集成一系列函数

时间:2015-03-13 22:23:36

标签: matlab

如何在功能列表中使用integral。下面的代码不起作用:

integral(@(v) exp(-v*[1 2 3]),0,100)

exp(-v*[1 2 3])是函数列表。

代码位于另一个以向量[1 2 3]作为输入的函数中。

1 个答案:

答案 0 :(得分:1)

您需要对非标量函数使用名称 - 值对('ArrayValued',true)(这是因为对于标量积分,函数将积分点的向量与{{1}一起传递给被积函数为了速度)。

bsxfun

我还注意到>> integral(@(v) exp(-v*[1 2 3]),0,100,'ArrayValued',true) ans = 1.0000 0.5000 0.3333 可以处理integral作为上限,如果这是Inf的近似值:

100

虽然输出看起来很相似,但这个输出精确到机器精度。