【问题标题】:MATLAB system commandMATLAB系统命令
【发布时间】:2015-02-11 17:40:56
【问题描述】:

我正在尝试使用 system 命令从 Matlab 运行 R。当我进入 命令system('R'),出现如下错误:

/usr/lib64/R/bin/exec/R:/usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6:找不到版本“CXXABI_1.3.8”(/lib64 需要) /libicuuc.so.52) /usr/lib64/R/bin/exec/R:/usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6:找不到版本“CXXABI_1.3.8”(/lib64/libicui18n 需要)。所以.52)

当我在 Matlab 之外使用它时,R 可以工作。我正在使用 Linux。

【问题讨论】:

  • 能否添加相关的MATLAB代码?
  • 我刚刚尝试在 OS X 10.10.2 和 R2014b 上运行 system('R'),它运行良好。您可能还应该编辑您的问题以包含有关您的操作系统、Matlab 版本(我假设为 R2014a)和 R 版本的更多详细信息。我想知道这是否可能与这里无关,更适合SuperUser?另外,this 有帮助吗?
  • 我找到了我需要的答案stackoverflow.com/questions/9959306/…。 Matlab 使用它自己的 libstdc++.so.6 版本,所以我不得不加载系统版本而不是 Matlab 版本

标签: linux r matlab


【解决方案1】:

可以在How to tell mex to link with the libstdc++.so.6 in /usr/lib instead of the one in the MATLAB directory?找到答案

基本上,Matlab 在从系统运行命令时使用它自己的 libstdc++.so.6 版本,因此您必须确保系统使用计算机默认位置的 libstdc++.so.6。

% Save library paths
MatlabPath = getenv('LD_LIBRARY_PATH');
% Make Matlab use system libraries
setenv('LD_LIBRARY_PATH',getenv('PATH'))
system( 'R' )
% Reassign old library paths
setenv('LD_LIBRARY_PATH',MatlabPath)

【讨论】:

    猜你喜欢
    • 2011-01-03
    • 2017-12-02
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多