2015-10-31 7 views
-1

Мне нужно запустить скрипт MATLAB внутри цикла bash. Я в курсе синтаксиса, который идет следующим образом:Запуск скрипта MATLAB в петле bash

for i in "${img[@]}" 
do 
    echo $i 
    matlab -nosplash -nodesktop -nojvm -r "myfunction('$i','cropped_$i');quit;" 
done 

Он работает, как должно, однако, я считаю, это очень раздражает, что он должен выйти и открыть MatLab каждую итерацию, что значительно увеличивает время вычислений. Есть ли способ запустить его более естественным образом, не закрывая/открывая каждую итерацию?

+0

Почему бы вам не пройти свою петлю на Matlab? – lhcgeneva

+1

Почему бы не загрузить изображения непосредственно в MATLAB? – Adriaan

+0

Вы не можете «демонизировать» matlab. Однако Matlab - отличный скриптовый язык для того, что вы пытаетесь сделать, просто напишите все это в скрипте matlab и вызовите это из bash с флагом '-r'. – maxywb

ответ

1

Написание петли в Matlab, безусловно, является лучшим ответом, хотя я не очень хорошо знаю Matlab, чтобы представить это как ответ. Другой вариант - построить код Matlab динамически.

for i in "${img[@]}"; do 
    code+="myfunction('$i', 'cropped_$i');" 
done 
code+="quit;" 
matlab -nosplash -nodesktop -nojvm -r "$code"