Question
I am struggling with the code generation of a function containing the fsolve command (supported since R2020b). Since it is a rather new topic, I did not find any related entries. This is the function i try to generate the mex-file for: function [x] = test_function(a,b) %#codegen x = zeros(1); opts = optimoptions('fsolve','Algorithm','levenberg-marquardt','Display','off'); % opts = optimoptions(opts,a.string,a.val); fcn = @(in)feval(b,in); rng default x0 = double(0.00);x(1) = fsolve(fcn,x0,opts); end And this is how I setup the code generation: cfg = coder.config('mex'); types = coder.getArgTypes('mytest','test_function') codegen -config cfg -args types test_function With the following function to get the coder.Types: function out = mytest a.val = 10e-5; a.string = "FunctionTolerance"; b = 'myeq'; out = test_function(a,b); end The struct a has no purpose yet, but will later be used to setup the optimoptions. Error Message after calling the codegen: "??? Index expression out of bounds. Attempted to access element 1. The valid range is 1-0." In the Coder Report Viewer it sais, that the error occured in function projectBox. I would appreciate any thoughts on this.
Expert Answer
Prashant Kumar
PhD Expert
Answered Aug 25, 2026
Unfortunately, this is due to a bug which will be fixed in an upcoming software update.
In the meantime, you can work around the issue by calling lsqnonlin instead of fsolve and pass -Inf as a lower bound and Inf as an upper bound, effectively making the problem unbounded. You will also need to update the optimoptions solver from 'fsolve' to 'lsqnonlin' in line 4 of test_function. The updated test_function is below for your reference.
We apologize for the inconvenience this has caused and appreciate you bringing it to our attention.
function [x] = test_function(a,b)
%#codegen
x = zeros(1);
opts = optimoptions('lsqnonlin','Algorithm','levenberg-marquardt','Display','off');
% opts = optimoptions(opts,a.string,a.val);
fcn = @(in)feval(b,in);
rng default
x0 = double(0.00);x(1) = lsqnonlin(fcn,x0,-Inf,Inf,opts);
end
100% Run Guarantee
3-Hour Fast-Track Delivery
Need a Custom Version or Complete Simulation for This Problem?
Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.
Tested on MATLAB R2024b / R2026a
Turnitin 0% Plagiarism Report
Free 7-Day Revisions Guarantee
Have a different question? Ask here
Related matlab Questions & Solutions
Browse All →
Explore similar technical troubleshooting questions and verified MATLAB solutions:
Ready-to-Run MATLAB & Simulink Projects
Browse All Projects →