MATLAB系统命令

3

我试图使用system命令从Matlab中运行R。当我输入命令system('R')时,出现以下错误:

/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)

在Matlab外部使用R是有效的。 我正在使用Linux。


你能添加相关的MATLAB代码吗? - Yellows
1
我刚试着在OS X 10.10.2和R2014b上运行system('R'),它能正常工作。你应该编辑一下你的问题,包括关于你的操作系统、Matlab版本(我猜是R2014a)和R版本的更多细节。我想知道这是否适合在这里讨论,或者更适合在SuperUser上讨论?此外,这个链接有帮助吗? - horchler
我找到了我需要的答案 https://dev59.com/9mkw5IYBdhLWcg3wV5ID。Matlab正在使用它自己的libstdc++.so.6版本,所以我必须加载系统版本而不是Matlab版本。 - Bob
1个回答

4
答案可在如何告诉mex链接到计算机默认位置的/usr/lib中的libstdc++.so.6而非MATLAB目录中的版本?找到。基本上,当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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接