如何在Matlab中计算期望值?

如何在Matlab中计算期望值?,matlab,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. 如果有人知道如何更正此错

当我想计算正态分布向量的期望值时,函数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.

如果有人知道如何更正此错误,请提供帮助。

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

@(x, y)(p2([x; y; Y1]))
如果x或y或向量,则会出现错误。所以呢???使用==>vertcat时出错

这可以通过使用arrayfun进行修复:

@(x, y) arrayfun(@(yi) arrayfun(@(xi) p2([xi; yi; Y1]), x), y)
但这并不能解决另一个问题:被积函数有向量输出,即使输入x和y是标量


对我来说,你为什么要对这个函数进行双重积分,这是毫无意义的。p2中变量X中的元素似乎每个都有一个独立的输出…

如果需要所有代码,我将添加它p2函数有一个4个元素的数组作为输出;您想独立地集成它们吗?