[英]Call external script from matlab failed on Ubuntu
我搜索了很多次,但沒有解決問題。 我使用system()/ unix()從matlab調用了一個外部R腳本,發現共享庫被錯誤加載。 我知道在Matlab中環境是錯誤的。 我也嘗試將命令包裝在xterm或gnome-terminal中,但沒有成功。 如何加載正確的env變量? 有沒有辦法在調用之前重設回操作系統的env變量?
>> !export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/
% also tried - !export LD_LIBRARY_PATH=/usr/lib64;
>> unix('Rscript /home/gary/testRF1.R')
Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '/usr/lib/R/library/stats/libs/stats.so':
/usr/local/MATLAB/R2012a/sys/os/glnxa64/libgfortran.so.3: version `GFORTRAN_1.4' not found (required by /usr/lib/liblapack.so.3gf)
During startup - Warning message:
package ‘stats’ in options("defaultPackages") was not found
Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '/usr/lib/R/library/stats/libs/stats.so':
/usr/local/MATLAB/R2012a/sys/os/glnxa64/libgfortran.so.3: version `GFORTRAN_1.4' not found (required by /usr/lib/liblapack.so.3gf)
Error: package or namespace load failed for ‘R.matlab’
Execution halted
ans =
1
發行:Ubuntu 12.04.3
R信息:平台x86_64-pc-linux-gnu
拱x86_64
操作系統linux-gnu
系統x86_64,linux-gnu
狀態
專業3
小0.2
年2013
第09個月
第25天
svn版本63987
語言R
version.string R版本3.0.2(2013-09-25)昵稱Frisbee Sailing
非常感謝,加里
一種解決方案是更改要使用的libgfortran。
打開一個終端,然后轉到“ local_MATLAB” / sys / os /“ your_os” /
檢查libgfortran.so.3是否是指向ligfortran.so.3.0.0的符號鏈接並將其刪除
否則,請復制libgfortran.so.3以進行備份,以防萬一發生問題
找到您自己的libgfortran並使符號鏈接指向它
在我的系統上,它看起來像:
cd /usr/local/MATLAB/R2012a/sys/os/glnxa64/
rm libgfortran.so.3
ln -s -T /usr/lib/x86_64-linux-gnu/libgfortran.so.3.0.0 libgfortran.so.3
如果您使用的是UNIX,則應已安裝libgfortran,可以使用以下命令找到它:
locate libgfortran
請記住重新啟動MATLAB,以便應用更改
我假設您可以從終端成功運行Rscript。 如果真是這樣,那么解決您的問題是,您要在matlab中使用setenv而不是!export。 您可能想看一下這個問題: 從Matlab啟動應用程序
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.