1

次のコードを実行しようとしました。

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)

クワッドを使用してmvnpdf関数を統合するとエラーが発生するのはなぜですか?

関数Fに与えられたパラメーターquadがスカラーではないのはなぜですか?

4

1 に答える 1

1

これは、単一の値ではなく、quad値のベクトルをに渡すためです。Fあなたはあなたの中でそれを処理する必要がありますF、例えばこのように

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

ベクトルに行があるので、単純に6を何度も繰り返しましたXXこれは列ベクトルである必要があることに注意してください。そのため、明示的に列ベクトルに変換しX(:)ます。今、あなたは書くことができます

F(1:100)

エラーが発生することなく。

于 2012-10-02T11:11:48.327 に答える