带有mvnpdf的quad涉及MATLAB中的向量

时间:2012-10-02 10:36:07

标签: matlab quad

我尝试运行以下代码:

F=@(x)mvnpdf([6 x],[0 0],[1 0;0 1]);
P=quad(F,12,100);

得到x2从联合高斯分布的12到100的概率积分。 但是matlab报告了这个错误:

  

X和MU必须具有相同的列数。

这对我来说很奇怪,因为当我运行F(1)F(2)或类似的东西时,它运行正常。

当我使用quad来集成mvnpdf函数时,为什么会出错。?

为什么赋予函数F的参数quad不是标量?

1 个答案:

答案 0 :(得分:1)

这是因为quad将值向量传递给F,而不是单个值。您需要在F处理此问题,例如像这样

F = @(X)mvnpdf([repmat(6, size(X(:),1), 1) X(:)],[0,0],[1,0;0,1]);

我简单地重复了数字6,因为向量X中有行。请注意,X必须是列向量,这就是我X(:)将其明确转换为此类的原因。现在你可以写

F(1:100)

没有收到错误。