2015-08-19 2 views
1

У меня есть скрипт bash, и я хочу выполнить его из Matlab 2014b в Ubuntu 14.04. Когда я запускаю его с терминала (я начинаю с os), все в порядке. Я пытаюсь запустить его из Matlab следующим образом:Выполнение скрипта bash отличается при запуске из Matlab и Terminal

!./script.sh 

Он выполняет, но не может открыть файлы изображений, которые необходимо загрузить. Более того, если я запускаю окно терминала с Matlab

!./gnome-terminal 

и использовать его, чтобы запустить сценарий, я получил тот же «файл не найден» проблемы. Доступ к текстовым файлам без проблем. Путь к изображениям глобальный. Для загрузки изображений используется opencv library. Я предполагаю, что по какой-то причине opencv отличается от Matlab, но я не знаю, что делать.

Я трачу много времени на выяснение проблемы, но до сих пор не могу ее решить. Буду признателен за любые рекомендации или помощь.

+0

Вы используете абсолютные пути для файлов изображений? Возможно, вы находитесь в неправильном каталоге. – dasdingonesin

+3

. Оболочка Matlab не обязательно является той же оболочкой, что и оболочка вашего терминала. Убедитесь, что никаких необходимых параметров из '.profile' или' .bashrc' не хватает. Например, путь или псевдоним. – Matt

+0

Спасибо, Мэтт! Я не смог понять проблему, посмотрев в .profile и .bashrc, но я сравнивал переменные среды из 2 терминалов (Matlab и Ubuntu) и обнаружил, что они сильно отличаются. Я сделал setenv ('LD_LIBRARY_PATH', <содержимое LD_LBIBRARY_PATH с терминала Ubuntu>); И теперь это работает! –

ответ

0

LD_LIBRARY_PATH оболочки Matlab отличается от одной из оболочек. Следующая команда в Matlab:

setenv('LD_LIBRARY_PATH', <content of LD_LIBRARY_PATH from terminal>) 

решает проблему. Содержание LD_LIBRARY_PATH от терминала печатается

echo $LD_LIBRARY_PATH 
Смежные вопросы