Как запустить пакетный скрипт Matlab и сохранить результаты - PullRequest
0 голосов
/ 09 ноября 2018
#!/bin/bash
###########################
#
#PBS -l nodes=1:ppn=12
#PBS -l walltime=00:30:00

XXXXXXXXXx и ниже - подробности моего скрипта о запуске matlab Я хочу сохранить результаты из файла trial.m, но он не работает.

export JOBID=`echo "${PBS_JOBID}" | cut -d'.' -f1`
cd ${PBS_O_WORKDIR}
module load matlab/R2017b
matlab
trial.m

Имя моего скрипта: trial.m Как сохранить результаты из trial.m в мою среду? В моем файле trial.m matlab у меня есть следующие коды для отображения моих результатов, это работает? Бета и значения представляют собой два вектора чисел

disp(betas); 
disp(values);
save('parameters.mat','betas','values');

Кроме того, trial.m должен вызывать внешние функции, которые я сохранил в том же файле, может ли он вызываться автоматически?

1 Ответ

0 голосов
/ 09 ноября 2018

Вызовите MATLAB и выполните trial.m с помощью следующей команды:

matlab -r trial -logfile logfile.log -nodisplay -nosplash

Убедитесь, что trial.m выходит из MATLAB по завершении, чтобы продолжить выполнение любых шагов постобработки. Вам также следует отключить экраны MATLAB GUI и Splash, поскольку скрипт работает не в интерактивном режиме. Также убедитесь, что trial.m принудительно завершает работу MATLAB с помощью команды exit.

Сохраните результаты trial.m в среде, вызвав функцию save для создания файла .MAT. ПРИМЕЧАНИЕ. Чтобы получить доступ к файлу с помощью другого программного обеспечения, сохраните файл в формате CSV, набрав csvwrite .

csvwrite('betas.csv',betas);
csvwrite('values.csv',values);

MATLAB Альтернатива Bash

В качестве альтернативы вы можете использовать MATLAB набор инструментов параллельных вычислений для отправки задания. В этом случае вам больше не нужен скрипт bash. Однако вам необходимо изменить файлы MATLAB для обработки отправки задания в кластер ( здесь ).

...