【问题标题】:Call external script from matlab failed on Ubuntu在 Ubuntu 上从 matlab 调用外部脚本失败
【发布时间】:2014-01-08 18:03:08
【问题描述】:

我搜索了很多次,但没有解决问题。我使用 system()/unix() 从 matlab 调用了一个外部 R 脚本,发现共享库被错误加载。我知道matlab中的环境是错误的。我还尝试将命令包装在 xterm 或 gnome-terminal 中,但没有成功。如何加载正确的环境变量?有没有办法在调用之前重置回操作系统的环境变量?

>> !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) 昵称飞盘帆船

非常感谢, 加里

【问题讨论】:

    标签: linux r matlab ubuntu


    【解决方案1】:

    一种解决方案是更改您要使用的 libgfortran。

    1. 打开终端并 cd 到 "local_MATLAB"/sys/os/"your_os"/

    2. 检查 libgfortran.so.3 是指向 ligfortran.so.3.0.0 的符号链接并将其删除

    3. 否则复制 libgfortran.so.3 以备不时之需

    4. 找到您自己的 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 以应用更改

    【讨论】:

      【解决方案2】:

      我假设您可以从终端成功运行 Rscript。如果是这样的话,那么 你的问题的解决方案是你想在matlab中使用setenv而不是!export。你可能想看看这个问题:Start application from Matlab

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-02-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多