Ich versuche, ein Doppelintegral zu berechnen, aber einen Fehler erhalten.Matlab Fehler bei der Berechnung Doppelintegral
Mein Code ist:
clear
Gamma = rand([22,1]);
data_i = rand([1,10]);
Y_1 = 1;
fun = @(D_star, Y_0) fun1(D_star , Y_1 , Y_0 , Gamma , data_i);
p = integral2 (fun , 0 , 1 , 0 , 1);
und die Funktion fun1 ist definiert als
function [p] = fun1(D_star , Y_1 , Y_0 , Gamma , data_i)
gamma=Gamma(1:3);
beta_1=Gamma(4:5);
beta_0=Gamma(6:7);
alpha_D=Gamma(8);
alpha_1=Gamma(9);
alpha_0=Gamma(10);
sigma2_1=Gamma(11);
sigma2_0=Gamma(12);
Lambda=Gamma(13:17);
sigma2_M=Gamma(18:22);
Sigma2_temp = [1 ; sigma2_1 ; sigma2_0 ; sigma2_M];
Alpha = [alpha_D ; alpha_1 ; alpha_0 ; Lambda];
Sigma2 = Alpha * Alpha' + diag(Sigma2_temp);
Z = data_i(3:5);
X = data_i(3:4);
M = data_i(6:10);
Mu = [Z*gamma , X*beta_1 , X*beta_0 , zeros(1,5) ]';
YY = [D_star ; Y_1 ; Y_0 ; M' ];
p = mvnpdf(YY,Mu,Sigma2);
end
Ich glaube nicht, gibt es ein Problem bei der Definition der Funktionen, weil ich sie bewerten kann (zB Spaß (1,1) gib mir eine Antwort). Die Fehlermeldung, die ich erhalte, ist:
Error using vertcat
Dimensions of matrices being concatenated are not consistent.
Error in fun1 (line 23)
YY = [D_star ; Y_1 ; Y_0 ; M' ];
Error in @(D_star,Y_0)fun1(D_star,Y_1,Y_0,Gamma,data(n,:))
Error in integral2Calc>integral2t/tensor (line 228)
Z = FUN(X,Y); NFE = NFE + 1;
Error in integral2Calc>integral2t (line 55)
[Qsub,esub] = tensor(thetaL,thetaR,phiB,phiT);
Error in integral2Calc (line 9)
[q,errbnd] = integral2t(fun,xmin,xmax,ymin,ymax,optionstruct);
Error in integral2 (line 106)
Q = integral2Calc(fun,xmin,xmax,yminfun,ymaxfun,opstruct);
Ich habe auch versucht, den Befehl -quad2d- statt -integral2- und bekam einen ähnlichen Fehler. Irgendwelche Ideen?
Die Fehlermeldung sagt alles. Sie versuchen, Matrizen zu verknüpfen, deren Größe nicht übereinstimmt. –
Ja, aber ich verstehe nicht warum, weil die Funktion an sich funktioniert, also muss es etwas mit der Integration geben. – Muly
Offensichtlich. Diese Linie verkettet 4 Elemente, drei werden direkt aus Eingabeparametern genommen. Ihre Eingabeparameter sind also die falschen Formen oder Größen. –