Newer version of Matlab let you compile Matlab code using emlmex, significantly improving the speed of certain functions, particularly those involving loops. However, the size and type of the inputs have to be fixed at compile time, limiting its use.
This function lets you compile functions dynamically at run time so that the size and types of the inputs don't have to be known before hand.
You simply call this function like you would feval:
[a,b,c] = runAndCompile('myfunc',X,Y,Z)
Note, however, that Matlab's emlmex only supports a subset of the Matlab language. This will not work with all functions and it might take some work to make functions eml compliant. See Matlab's emlmex help for details. A few minutes work, however, can save you hours or days of computer time depending on the size of the problem.
Matt Dunham (2023). compileAndRun (https://www.mathworks.com/matlabcentral/fileexchange/21756-compileandrun), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!