Vous pouvez utiliser la commande Unix "tail + n" pour supprimer les n premières lignes de sortie. Cet en-tête ressemble à 10 lignes, donc cela le dépouillera.
$ matlab -nosplash -nodesktop -nodisplay -r test | tail +10
C'est un peu fragile, mais, étant donné que les avertissements (comme qu ' « aucun système de fenêtre ») vont se dénudée, et la taille d'en-tête varie en fonction de ce que les avertissements se produisent (et ces avertissements sont diagnostics utiles). En outre, cet avertissement pourrait être sur STDERR au lieu de STDOUT, donc "queue +9" pourrait être ce dont vous avez besoin.
Une approche plus robuste pourrait être de modifier le script Matlab pour écrire dans un fichier séparé en utilisant fopen/fprintf/fclose. De cette façon, l'en-tête, les avertissements, les erreurs, etc. de Matlab seront séparés de la sortie formatée que vous voulez. Pour obtenir la sortie "disp" pour aller à ce handle de fichier séparé, vous pouvez le capturer en utilisant evalc. Le fichier de sortie peut être spécifié en utilisant un argument de test() dans le message -r, et la variable $$ env (le PID du processus de bash) incorporée dans le nom du fichier pour éviter les collisions dans un environnement multiprocessus.
function test(ppid)
outfile = sprintf('outfile-%d.tmp', ppid);
fh = fopen(outfile, 'w');
myvar = rand(3,4);
str = evalc('disp(myvar)');
fprintf(fh, '%s', str);
fclose(fh);
Pour l'invoquer depuis bash, utilisez ce formulaire d'appel. (Peut-être mineures syntaxe des problèmes ici, je n'ai pas une boîte Unix pour tester en ce moment.)
% matlab -nosplash -nodisplay -r "test($$)" -logfile matlab-log-$$.tmp
Disons que votre PID bash est 1234. Maintenant que vous avez votre sortie dans outfile-1234. tmp et un Matlab se connectent à matlab-log-1234.tmp. Collez-les dans/tmp si vous ne voulez pas être dépendant de pwd. Vous pouvez étendre cela pour créer plusieurs fichiers de sortie à partir d'un seul appel matlab, en économisant les coûts de démarrage si vous avez besoin de calculer plusieurs choses.
En octave, vous pouvez utiliser l'indicateur '-q'. – sffc