楼主: zhangtao
7541 5

[程序分享] Matlab中调用R(转摘ZZ) [推广有奖]

  • 3关注
  • 42粉丝

已卖:431份资源

学科带头人

41%

还不是VIP/贵宾

-

威望
0
论坛币
2302 个
通用积分
908.3324
学术水平
114 点
热心指数
120 点
信用等级
83 点
经验
52009 点
帖子
1552
精华
1
在线时间
2357 小时
注册时间
2005-1-13
最后登录
2024-5-21

楼主
zhangtao 发表于 2012-10-28 10:51:22 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在Matlab中调用R
一直往返于Matlab与R之间进行编程,今天发现原来有办法直接用Matlab调用R,
具体如下:

Calling R from MatlabThis uses the COM interface, so only works on Windows.
Install R.2.7.0 or newer. Make sure R.exe is in your windows path.

Install and run the Rcom server

Reboot matlab and put the following m-files in your path

Optional: in R-2.7.0\bin make a file called "R.init" which contains startup commands, such as library(glasso)
In matlab, type Rdemo. This should display b = 1 4 9 16 25 36 49 64 81 100c = 2 5 10 17 26 37 50 65 82 101

You can also call R as a subprocess as follows !R --no-save # at the matlab promptq() # at the R prompt to quit.
Trouble shooting
If it's not working make sure the Dcom service is running under Control Panel --> Administrative Tools --> Services --> DCOM Server Process Launcher. You can start the service by right clicking and selecting 'start', (unless of course its already running) and have it always start on reboot by double clicking and changing the startup type to automatic.

The Rsvr install creates a bunch of shortcuts under the R program folder on the start bar. One of these, "server 01 Basic Test" will test the connection to R - if that works we know the problem is between Matlab and Dcom and also unlikely to be a firewall problem.
ExampleA matlab wrapper to the glasso function.function precMat = glassoR(C, rho, useMBapprox)% Use L1-linear regression to find markov blankets and then Lambda.% Uses R code from http://www-stat.stanford.edu/~tibs/glasso/openR;evalR('C<-1') % must pre-declare variable before writing a matrixevalR('L<-1') putRdata('C',C);putRdata('rho',rho);putRdata('useMBapprox', useMBapprox)evalR('stuff <- glasso(C,rho=rho,approx=useMBapprox)'); evalR('L <- stuff$wi') % inverse covariance matrixprecMat = getRdata('L');closeR;经过本人安装测试,发现运用开始菜单中R下的Dcom中的Server 01进行测试,无法通过,报错如下 Loading StatConnector Server... Done Initializing R...Function call failed Code: -2147221485 Text: installation problem: unable to load connector Releasing StatConnector Server...Done经查证,原来Dcom Server需要在系统的Path中能够找到rproxy.dll和R.dll两个文件,R.dll一般直接安装R时机有即有,而rproxy.dll在R2.7.0以后的版本中不再使用,变为rpcproxy.dll,而且需要手动安装
rpcproxy包才会有,安装rpcproxy包后,需要将rpcproxy.dll所在目录手动添加到系统path中,比如
我安装完后,rpcproxy.dll在C:\Program Files\R\R-2.9.0\library\rscproxy\libs中,如此步骤后,
再运行Server 01进行测试,点击StartR,一切Done!
http://hi.baidu.com/binaryfan/item/08a21b0947d30de2f45ba666
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB matla atlab Atl Lab following interface windows library server

已有 1 人评分学术水平 热心指数 信用等级 收起 理由
epoh + 3 + 3 + 3 对论坛有贡献

总评分: 学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

数学好就是要天天学

沙发
chenecly 发表于 2012-10-28 11:01:40
有作用,但还是有点不懂。。。谢谢!

藤椅
aibieli731001 发表于 2012-10-28 11:07:29
先收藏着,感谢。

板凳
西门高 发表于 2012-10-28 11:17:14
谢谢分享

报纸
tnduddl 发表于 2014-4-10 16:01:48
安装rpcproxy包是什么意思呢

地板
石无价 发表于 2016-4-17 09:41:25
Install R.2.7.0 or newer. Make sure R.exe is in your windows path. (需要在系统盘下吗?)

Install and run the Rcom server

Reboot matlab and put the following m-files in your path (是指哪个path)

Optional: in R-2.7.0\bin make a file called "R.init" which contains startup commands, such as library(glasso)不理解这是什么意思?启动命令指什么?
rpcproxy包在R程序包中未找到。
望解答。新手,万分感谢。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 14:15