A Matlab wrapper package of NLopt Nonlinear Optimization Library
This project aims to create a set of NLopt-based MATLAB functions which are argument-compatible with the counterparts in Mathwork's Optimization Toolbox, namely: nlopt.fminunc
, nlopt.fmincon
, and nlopt.fminbnd
.
Also this project serves as an example of how to use C++ wrapper function mexObjectHandler
in my matlab-mexutils project.
- Build & Installation
nlopt.fminunc
: Unconstrained nonlinear minimizationnlopt.fmincon
: Constrained nonlinear minimization with inequality, equality, and bound constraintsnlopt.fminbnd
: Bounded global nonlinear minimizationnlopt.options
: Object to manage NLopt options- Useful Links
This project should build and install following the standard CMake build/install procedures right out of box. However, this project has only been validated to build and install in Windows (MSVC+Ninja). If you encounter any build/installation issue, please post it on the GitHub Issues board and I'll try to address it. Meanwhile, if you resolved it yourself, especially on non-Windows platforms, please consider initiating a pull request. Thanks!
Name | Default | Description |
---|---|---|
CMAKE_INSTALL_PREFIX | ${MATLAB_USER_DIR} | Base installation directory. See below for what MATLAB_USER_DIR |
MATLAB_NLOPT_TOOLBOX_DIR | "nlopt" | Installation subdirectory for Matlab-NLopt packaged functions (relative to CMAKE_INSTALL_PREFIX) |
MATLAB_NLOPT_EXAMPLE_DIR | "nlopt" | Installation subdirectory for Matlab-NLopt examples (relative to CMAKE_INSTALL_PREFIX) |
BUILD_NLOPT_LIBS | ON | Also build and install NLopt (as a shared library). For a Windows install, the nlopt.dll file is placed within MATLAB_NLOPT_TOOLBOX_DIR. If OFF, CMake's find_package() must be able to located the NLopt installation and its path is on the system PATH for MATLAB to find it. For non-Windows platform, if find_Package() locates the NLopt installation, this option is ignored. |
NLOPT_LIB_DIR | "" | If NLopt already not built together and installed, specify the location of NLopt library directory |
NLOPT_INCLUDE_DIR | "" | If NLopt not built together, specify the location of NLopt include directory |
The default installation path is set to the user's MATLAB_USER_DIR
folder which is defined as
Platform | Path |
---|---|
Windows | $ENV{USERPROFILE}/Documents/MATLAB |
Others | $ENV{home}/Documents/MATLAB |
For example, under a Windows' JohnDoe user account, the files will be installed at C:/Users/Documents/MATLAB/nlopt
if default MATLAB_NLOPT_TOOLBOX_DIR and MATLAB_NLOPT_EXAMPLE_DIR are used. To install the packaged m-functions and example m-files on separate subdirectories, specify MATLAB_NLOPT_TOOLBOX_DIR and MATLAB_NLOPT_EXAMPLE_DIR.