Integrating a function including mvnpdf. Error: Input function must return 'double' or 'single' values. Found 'sym'.
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi,
I want to integrate the function fun below. It consists of a variable X multiplied by the multi-variable pdf of X and the correlated variable Y.
I get the error message "Input function must return 'double' or 'single' values. Found 'sym'." (see below).
fun = @(Y,X) X .* mvnpdf([X Y],mu,sigma); %where mu is 1-by-2 and sigma is 2-by-2
u = @(Y) log(C) + Y; %where C is a scalar constant
test = integral2(fun,-inf,inf,-inf,u);
Error using integral2Calc>integral2t/tensor (line 231)
Input function must return 'double' or 'single' values. Found 'sym'.
When I let X and Y be independent, so replace mvnpdf(....) by the product of their marginal pdfs, it works (then I redefine the variables and use lognpdf). I believe the error comes from the fact that my function fun gives symbolic output, even when supplied with arguments:
fun(1,2)
ans =
2*exp(- (5*conj(X) - conj(Y))^2/48 - conj(Y)^2/2 - 261924464376925987/144115188075855872)
But why is this? Is this the reason I cannot integrate my function? Grateful for help! Thanks!
0 Kommentare
Antworten (1)
Catalytic
am 29 Okt. 2019
Yes, that is the reason. Maybe you have made sigma or mu symbolic variables?
Siehe auch
Kategorien
Mehr zu Numerical Integration and Differentiation finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!