1

正規分布ベクトルの期待値を評価したいときに、関数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.

誰かがこれを修正する方法を知っているなら、助けてください。

4

1 に答える 1

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がスカラーであっても、被積分関数はベクトル出力を持ちます。

なぜその機能を二重に統合しようとしているのか、私にはまったく意味がありません。それぞれの変数 X の要素にはp2独立した出力があるように見えます...

于 2012-05-20T13:34:12.140 に答える