MATLAB系统命令

问题描述:

我试图从Matlab运行R使用system命令。当我进入 命令system('R'),出现以下错误:当我使用它Matlab的外MATLAB系统命令

/usr/lib64/R/bin/exec/R: /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /lib64/libicuuc.so.52) /usr/lib64/R/bin/exec/R: /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /lib64/libicui18n.so.52)

[R作品。我正在使用Linux。

+0

您可以添加相关的MATLAB代码吗? – Yellows 2015-02-11 17:43:47

+1

我刚刚试过在OS X 10.10.2和R2014b上运行'system('R')',它工作正常。您应该也可以编辑您的问题,以包含有关您的操作系统,Matlab版本(R2014a,我假设)和R版本的更多详细信息。我想知道这是否会成为这里的主题,并且更适合[SuperUser](http://superuser.com)?此外,[这](http://*.com/questions/23494103/version-cxxabi-1-3-8-not-found-required-by)有帮助吗? – horchler 2015-02-11 18:49:30

+0

我找到了我需要的答案https://*.com/questions/9959306/how-to-tell-mex-to-link-with-the-libstdc-so-6-in-usr-lib-instead-的最一个-i的。 Matlab使用它自己的libstdC++。so.6版本,所以我不得不加载系统版本而不是Matlab版本 – Bob 2015-02-12 04:49:11

答案可以在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)