Compiled ScanImage is a packaged form of ScanImage which eliminates the MATLAB license requirement at the cost of certain configurable features.

# Installation

You will need to install the MATLAB Runtime in order to install Compiled ScanImage.

Everything else is handled automatically by Compiled ScanImage's automated installer.

# Differences Between Compiled and Regular ScanImage

Due to the limitations imposed by the MATLAB compiler, certain regular features of ScanImage could either not be translated, or had to be simplified.

## Command Window

There is no Command Window in compiled MATLAB (along with any other UI commonly found within the MATLAB workspace). However, using ScanImage's own Status Window should allow for running MATLAB-specific commands (e.g. no local MATLAB scripts, see User Functions). There are also limitations on which built-in MATLAB commands are available in compiled MATLAB. A full listing of unsupported functions can be found here.

## User Functions

Due to how paths work, loading code dynamically is not supported in compiled MATLAB. However, ScanImage offers a workaround that allows scripts to be essentially `run`, albeit with its own set of limitations.

The first of these is specific to how User Functions are inserted into the GUI. Normally, you would put the function name assuming that MATLAB would resolve it in the PATH. However, Compiled MATLAB does not have a concept of a MATLAB path so all references to external User Functions should refer to them using their full paths to the file (usrFcn -> C:\Documents...\usrFcn.m). Furthermore, MATLAB is unable to call other local functions called by a User Function as one would expect due to the aforementioned lack of a PATH.

## Arbitrary Line Scanning

Since Compiled MATLAB does not support importing .m files out of the box, adding your own custom arbitrary line scan shape is no longer possible.