Pour exécuter un script, vous pouvez ouvrir Matlab (vous pouvez empêcher de l'exécuter sans l'interface graphique en utilisant -nodisplay
et -nodesktop
flags), puis exécutez le script en utilisant le run
commande, et enfin fermez matlab en utilisant exit
.
Vous pouvez faire tout cela depuis un terminal avec une seule instruction :
matlab -nodisplay -nosplash -nodesktop -r "run('path/to/your/script.m');exit;"
Cependant, Matlab affiche le message de bienvenue sur la console avant d'exécuter votre script. Pour vous débarrasser du message de bienvenue, sautez simplement les 11 premières lignes (10 selon votre version de Matlab) en utilisant tail -n +11
Votre instruction finale sera donc :
matlab -nodisplay -nosplash -nodesktop -r "run('path/to/your/script.m');exit;" | tail -n +11
À partir de R2019a, la méthode préférée serait, pour votre script test.m :
matlab -batch "test"
Cela présente plusieurs avantages, principalement pas besoin de tous les -no
flags et MATLAB sortira avec un statut différent de zéro si test.m (doit être sur le chemin de recherche) contient une erreur.
Depuis la page de documentation, matlab (Linux) :
Exécutez le script, l'instruction ou la fonction MATLAB de manière non interactive.MATLAB :
- Commence sans le bureau
- N'affiche pas l'écran de démarrage
- Exécute l'instruction
- Désactive les modifications des préférences
- Désactive la mise en cache de la boîte à outils
- Enregistre le texte dans
stdout
etstderr
- N'affiche pas les boîtes de dialogue
- Sortie automatiquement avec le code de sortie 0 si script s'exécute avec succès. Sinon, MATLAB se termine avec un code de sortie différent de zéro.
déclaration est le code MATLAB entre guillemets doubles. Si instruction est le nom d'une fonction ou d'un script MATLAB, ne spécifiez pas l'extension de fichier. Tout fichier requis doit se trouver sur le chemin de recherche MATLAB ou dans le dossier de démarrage.
Utilisez le
-batch
option dans les scripts non interactifs ou les flux de travail en ligne de commande. Ne pas utiliser cette option avec le-r
option.Pour tester si une session de MATLAB s'exécute en mode batch, appelez le
batchStartupOptionUsed
fonction.Exemple :
-batch "myscript"
J'ai créé un script shell de base appelé runm
et mets sur mon chemin :
$ runm mymatlab.m
Scénario :
# simple script to run matlab script
if [ $# -eq 0 ]
then
echo "please pass m script"
fi
matlab -nodisplay -nosplash -nodesktop -r "run('$1');"