2012-05-20 3 views
1

정규 분포 벡터의 기대치를 계산할 때 dblquad 함수에 문제가 있습니다. 상수 벡터 -;Matlab에서 기대를 어떻게 평가할 수 있습니까?

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

Y1은 [B A] : 여기 코드이다. 그리고 그러한 오류가 발생합니다 :

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

도움이, 누군가가 이것을 해결하는 방법을 알고 있다면.

+0

모든 코드가 필요하면 – reinearthed

+1

전체 코드를 추가하십시오. –

+0

'p2' 함수는 출력으로 4 개의 원소 배열을 가지고 있습니다; 그것들을 모두 독립적으로 통합하고 싶습니까? –

답변

0

피연산자는 벡터 입력을 받아 들일 수 있어야합니다. 지금은

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

입니다. x 또는 y 또는 벡터 인 경우 오류가 발생합니다. 그러므로 ??? Error using ==> vertcat.

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

를하지만 다른 문제가 해결되지 않는다 :

는 arrayfun를 사용하여 고정 될 수 적분은 입력 xy 스칼라 때에도, 벡터 출력을 갖는다.

왜 실제로 그 기능을 두 가지로 통합하려고하는지 내게는 의미가 없습니다. p2의 변수 X에있는 요소는 각각 독립 출력을 가지고 있습니다 ...

관련 문제