MATLAB: Errors with optimoptions and optim.opti​ons.create​SolverOpti​ons

Optimization Toolboxoptimoptions createsolveroptions

I just installed MATLAB R2013a. (Specifically, I uninstalled it (including user preferences), cleaned out the directory, then reinstalled from the mathworks.com web site. There are no other MATLAB versions on this computer.) When I tried to run optimoptions, it gave me an error about attempting to use a script:
>> op = optimoptions('lsqnonlin')
Attempt to execute SCRIPT optimoptions as a function:
C:\Program Files\MATLAB\R2013a\toolbox\shared\optimlib\ja\optimoptions.m
Checking what optimoptions is getting executed, it says this:
>> which optimoptions -all
C:\Program Files\MATLAB\R2013a\toolbox\shared\optimlib\ja\optimoptions.m
C:\Program Files\MATLAB\R2013a\toolbox\optim\optim\optimoptions.m % Shadowed
The first one of these is indeed a script, so I tried moving …\toolbox\optim\optim\ above …\toolbox\shared\optimlib (and …optimlib\ja) in the path and restarting MATLAB. Then I got a different error:
>> which optimoptions
C:\Program Files\MATLAB\R2013a\toolbox\optim\optim\optimoptions.m
>> op = optimoptions('lsqnonlin')
Error using optimoptions (line 114)
Undefined variable "optim" or class "optim.options.createSolverOptions".
It doesn't matter what arg I pass to optimoptions, it gives the same error with 'lsqlin' or 'foobar'. I removed all my directories (i.e., non-MATLAB-installed directories) from the path and restarted MATLAB, with no effect.
For what it's worth, if I do a search in Windows for createSolverOptions.m, one file shows up: C:\Program Files\MATLAB\R2013a\toolbox\optim\+optim\+options\createSolverOptions.m .
Help! Does anyone have any experience with this issue?
————————————
Relevant versions in use:
MATLAB Version: 8.1.0.604 (R2013a)
Optimization Toolbox Version 6.3 (R2013a)
Windows 7 Professional 64-bit

Best Answer

Hi David, This seems like it most certainly is a path related issue. Could you try the following?
>> restoredefaultpath
>> savepath
>> rehash toolboxcache
>> op = optimoptions('lsqnonlin')
Related Question