[[PageOutline]] The MATLAB API of MUSCLE is a subset of the C++ API, the C++ API is again a subset of the Java API. Because the core of MUSCLE is written in Java, the runtime would start a new MATLAB instance that will communicate with Java code, but this is hidden in the API. == MATLAB API == The functions there are limited, but they should be sufficient for most needs: {{{ % Initialize MUSCLE environment muscleInit() % Cleanup MUSCLE environment muscleFinalize() % returns kernel name muscleKernelName() % return CxA property value muscleHasProperty('propName') % check if property exists muscleHasProperty('prop_name') % test agains CxA termination condition muscleWillStop() % sends data muscleSend('entrance', array) % receives data muscleReceive('exit', data_type) }}} == CxA == All MATLAB kernels should use as their implementation `muscle.core.standalone.MatlabKernel`, e.g. {{{ w = Instance.new('w', 'muscle.core.standalone.MatlabKernel') }}} == Supported !DataTypes == Due to huge mismatch between the C and MATLAB datatypes only subset of datatypes supported in the C API is available in the MATLAB API, namely: * MUSCLE_DOUBLE * MUSCLE_STRING * MUSCLE_INT32 * MUSCLE_BOOLEAN == Example == {{{ module load matlab muscle2 -mac $MUSCLE_HOME/share/muscle/examples/cxa/SimpleMatlabExample.cxa.rb }}}