2015-08-19 87 views
1

我有一個bash腳本,我想在Ubuntu 14.04中從Matlab 2014b執行它。當我從終端啓動它(我從os開始)時,一切都很好。我嘗試從Matlab這樣啓動它從Matlab和終端運行bash腳本的執行有所不同

!./script.sh 

它執行但無法打開必須加載的圖像文件。比 更多,如果我從MATLAB

!./gnome-terminal 

啓動終端窗口,並用它來啓動我得到了相同的「找不到文件」的問題腳本。文本文件訪問沒有問題。圖像的路徑是全球性的。要加載圖像,使用opencv庫。我的猜測是,由於某種原因opencv的工作原理與Matlab不同,但我不知道該怎麼做。

我花了很多時間找出問題,但仍無法解決問題。我會感謝任何建議或幫助。

+0

您是否使用圖像文件的絕對路徑?也許你在錯誤的目錄裏 – dasdingonesin

+3

Matlab shell不一定和你的終端shell一樣。檢查以確保您的'.profile'或'.bashrc'中的所有必需選項不會丟失。例如路徑或別名。 – Matt

+0

謝謝,馬特!我無法通過查看.profile和.bashrc來找出問題,但我比較了兩個終端(Matlab和Ubuntu)的環境變量,並發現它們有很大不同。我做了 setenv('LD_LIBRARY_PATH',<從Ubuntu終端的LD_LBIBRARY_PATH的內容>); 現在它的工作! –

回答

0

Matlab shell的LD_LIBRARY_PATH不同於終端shell之一。在Matlab中的命令如下:

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

解決了這個問題。 來自終端的LD_LIBRARY_PATH的內容打印

echo $LD_LIBRARY_PATH