我如何评估Matlab的期望?

时间:2012-05-20 12:33:33

标签: matlab

当我想评估正态分布向量的期望时,我遇到了函数dblquad的问题。 这是一个代码:

p2 = @(X)(mvnpdf(X,zeros(4,1),sigma2));
int1 = dblquad(@(x, y)(p2([x; y; Y1])), 0,1,0,1)

其中Y1是[a; b] - 常数向量。它出现了这样一个错误:

??? Error using ==> vertcat
CAT arguments dimensions are not consistent.

请帮助,如果有人知道如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

被积函数应该能够接受矢量输入。现在是

@(x, y)(p2([x; y; Y1]))

如果x或y或向量将会出错。因此??? Error using ==> vertcat

这可以通过使用arrayfun修复:

@(x, y) arrayfun(@(yi) arrayfun(@(xi) p2([xi; yi; Y1]), x), y)

但是这并没有解决另一个问题:即使输入xy是标量,积分也有矢量输出。

对我来说,为什么你试图加倍整合这个功能实际上是没有意义的。看起来p2中变量X中的元素都有独立的输出......