En una entrada anterior se ha visto cómo crear aplicaciones gráficas con Matlab. Con esto se puede conseguir que otros usuarios sin conocimientos técnicos puedan acceder a las funcionalidades creadas. Aunque tiene un problema, cada usuario ha de disponer de una licencia de Matlab para ejecutar el código. Para solucionar esto se puede utilizar la toolbox MATLAB Compiler, con la cual se pueden crear aplicaciones independientes en Matlab. A continuación, se explicará cómo usar esta toobox para crear y distribuir aplicaciones.
Creación de la aplicación
Para crear una aplicación con Matlab es necesario disponer de una licencia de MATLAB Compiler e instalar la toolbox. Cuando esta se encuentra instalada se puede acceder a la función mcc
con la que se pueden compilar aplicaciones. Para ello se ha de escribir la siguiente línea en la terminal
mcc -m fun.m
Esto creará una versión compilada de la función en un archivo ejecutable. Por ejemplo, en Windows se creará un archivo con extensión exe
y en Mac un paquete ejecutable con extensión app
. En el caso de que fun.m
haga requiera otras funciones el compilador las incluirá automáticamente, salvo que se llamen mediante eval
. Desgraciadamente Matlab no ofrece la posibilidad de realizar compilación cruzada. Un programa compilado en Mac solamente se podrá ejecutar en Mac y lo mismo para los compilados en Windows o Linux.
En Windows al ejecutarse las aplicaciones aparecerá una terminar con la salida. En caso de que no se desee que aparezca se ha de cambiar la opción -m
por `-e.
mcc -e fun.m
Inclusión de otros archivos en el paquete compilado
En caso de que se cree aplicaciones en las que se necesitan otros archivos, por ejemplo, datos o imágenes es necesario indicar estos al compilador para que los incluya. Esto también afecta a las funciones que se llaman mediante eval
en lugar de directamente. La forma para indicar los archivos a incluir es mediante la opción -a
seguido del archivo. Por ejemplo, para incluir una imagen la aplicación se ha se utilizar la siguiente línea.
mcc -m fun.m -a img.jpg
Lo que incluirá el archivo img.jpg
dentro del archivo compilado.
Renombrando el archivo ejecutable
El archivo ejecutable no tiene por que tener el mismo nombre que el código. Mediante la opción -o
se le puede indicar el nombre del archivo. Por ejemplo, al escribir el siguiente comando
mcc -m fun.m -o myapp
El ejecutable generado tendrá el nombre myapp
en lugar de fun
.
Distribuyendo el programa a otros usuarios
Una vez compilada la aplicación se ha de enviar esta al usuario final. Antes de ejecutar la aplicación este ha de instalar MATLAB Runtime en su ordenador. Estas librerías se puede descargar en la web de Matlab: MATLAB Runtime.
El MATLAB Runtime es específico para la versión de Matlab en la que se ha compilado. En caso de que exista una versión posterior del MATLAB Runtime esta no ejecuta los compilados generados en versiones anteriores. Por lo que se ha de indicar al usuario final en qué versión de Matlab se ha generado el ejecutable. Afortunadamente, es posible instalar más de una versión a la vez en el mismo ordenador, facilitando trabajar con compilados generados en diferentes versiones.
Conclusiones
En esta entrada se ha visto cómo crear aplicaciones independientes con Matlab y distribuirlas a usuarios finales. Esto permite distribuir el trabajo sin que los usuarios finales necesitan disponer de una licencia de Matlab en sus ordenadores.
Imágenes: Pixabay (rawpixel)