从Matlab呼叫R [英] Calling R from Matlab

查看:112
本文介绍了从Matlab呼叫R的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我以前可以通过系统调用从Matlab调用R:

I used to be able to call R from Matlab with a system call:

system('"/usr/bin/R" --no-save < myscript.R')

但是,现在,使用Matlab R2012b和R版本3.0.0(2013-04-03)-面具奇迹",即使从外壳程序运行时一切正常,加载库时也会出现错误.我正在运行MacOSX 10.6.8.

But now, using Matlab R2012b and R version 3.0.0 (2013-04-03) -- "Masked Marvel", I get errors when loading libraries, even though everything work just fine when I run it from the shell. I am running MacOSX 10.6.8.

Error in dyn.load(file, DLLpath = DLLpath, ...) : 
unable to load shared object'/Library/Frameworks/R.framework/Versions/3.0/Resources/library/stats/libs/stats.so':
dlopen(/Library/Frameworks/R.framework/Versions/3.0/Resources/library/stats/libs/stats.so, 6):
Symbol not found: __gfortran_pow_r8_i4
Referenced from: /Library/Frameworks/R.framework/Versions/3.0/Resources/lib/libRlapack.dylib
Expected in: /Applications/MATLAB_R2012b.app/sys/os/maci64/libgfortran.2.dylib
in /Library/Frameworks/R.framework/Versions/3.0/Resources/lib/libRlapack.dylib
During startup - Warning message:
   package 'stats' in options("defaultPackages") was not found 

推荐答案

在调用R脚本之前未设置环境变量DYLD_LIBRARY_PATH:

Unset environment variable DYLD_LIBRARY_PATH before calling R script:

>> !/usr/bin/Rscript ms.R
Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  unable to load shared object '/Library/Frameworks/R.framework/Versions/3.0/Resources/library/stats/libs/stats.so':
  dlopen(/Library/Frameworks/R.framework/Versions/3.0/Resources/library/stats/libs/stats.so, 6): Symbol not found: __gfortran_pow_r8_i4
  Referenced from: /Library/Frameworks/R.framework/Versions/3.0/Resources/lib/libRlapack.dylib
  Expected in: /Applications/MATLAB_R2013a.app/sys/os/maci64/libgfortran.2.dylib
 in /Library/Frameworks/R.framework/Versions/3.0/Resources/lib/libRlapack.dylib
During startup - Warning message:
package 'stats' in options("defaultPackages") was not found 
Error: could not find function "rnorm"
Execution halted

>> !unset DYLD_LIBRARY_PATH; /usr/bin/Rscript ms.R

Call:
lm(formula = y ~ x)

Coefficients:
(Intercept)            x  
   -0.09727      0.03573  

这篇关于从Matlab呼叫R的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆