[英]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.