MATLAB - integral2和mvnpdf

时间:2014-02-28 04:08:57

标签: matlab

我知道此问题之前已经以一维形式提出(请参阅quad with mvnpdf involves vector in MATLAB),但我似乎无法将此用于2D案例。我想评估

integrand = @(x1,x2) mvnpdf([x1,x2],[0,0],[1,0;0,1]);
integral2(integrand,-10,10,-10,10)

但收到错误

X and MU must have the same number of columns.

我知道我需要指定integrand函数来执行逐元素操作,但我的尝试是徒劳的。任何帮助将不胜感激......

1 个答案:

答案 0 :(得分:2)

尝试以下方法:

integrand = @(x1, x2) reshape(mvnpdf([x1(:), x2(:)],[0,0],[1,0;0,1]), size(x1));

integral2的Matlab文档指出:

  

所有输入函数必须接受数组作为输入和操作       按元素。函数Z = FUN(X,Y)必须接受数组X和Y.       相同的大小并返回一组相应的值。

例如,对于上述情况,integral2将两个14乘14矩阵传递给integrandx(:)integral2传递的矩阵中生成一维向量。这是为了向mvnpdf提供两个列向量,这在本例中是预期的。 mvnpdf然后返回一个密度值的列向量,必须对其进行重新整形(使用reshape),以使尺寸符合integral2预期的方式。