FZERO error with matrix dimensions
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Girija Bahety
am 14 Apr. 2021
Bearbeitet: Matt J
am 19 Apr. 2021
I am trying to evaluate a function with fzero and getting the following error message - I am not sure why its throwing an error:
Error using fzero (line 246)
FZERO cannot continue because user-supplied function_handle ==> xsld failed with the error below.
Incorrect dimensions for raising a matrix to a power. Check that the matrix is square and the power is a scalar. To perform elementwise matrix
powers, use '.^'.
Error in moments (line 80)
[w,fv]= fzero(@xsld,w0,options);
The codes are below:
tol=10^-5; %tolerance
w0=[0.1,200]; %wage interval
options=optimset('TolX',tol,'Display','iter');
options=optimset(options,'PlotFcns',{@optimplotx,@optimplotfval});
try
[w,fv]= fzero(@xsld,w0,options);
catch
cr = 50;
return
end
And the function @xsld has the following codes, saved as a function file (I am only showing the codes that have the argument w):
function[xld] = xsld(w)
some codes...
RW = repmat(w.*(s.^gamma),1,ns); %wage income
A = (1-((1-nu)*(1-alpha))).*(((1-nu)*(1-alpha))/w)^(((1-nu)*(1-alpha))/(1-((1-nu)*(1-alpha))));
lu = (((theta_r.^nu).*(1-nu).*(1-alpha).*(k.^(alpha*(1-nu))))/w).^(1/(nu + alpha*(1-nu)));
Ld = sum(mean(lu,2)) + ((B*psi)/w)^(1/(1-psi));
xld = (sum(mean((((theta_r.^nu).*((1-nu)*(1-alpha)).*(k.^(alpha*(1-nu))))/w).^(1/(nu + alpha*(1-nu))),2)) + ((B*psi)/w)^(1/(1-psi))) - Ls;
0 Kommentare
Akzeptierte Antwort
Matt J
am 14 Apr. 2021
You can trap the occurrence of the error using
dbstop if caught error
4 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Debugging and Analysis 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!