Hi,

I wish to use R (version 2.13.1) from within Matlab(ver R2009a) on windows XP 
plaform (on both 64 bit and 32 bit OS) . For this I have installed 
StatConnector 
(http://rcom.univie.ac.at/download/current/statconnDCOM.latest.exe) for calling 
R from within Matlab (R2009a) on Windows XP platform. I have added all the 
files of MATLAB_RLINK folder (downloaded from 
http://www.mathworks.com/matlabcentral/fileexchange/5051) into the 
default Matlab working path (D:\User\MATLAB) and also added the folder 
MATLAB_RLINK to the matlab path C:\Program Files\MATLAB\R2009a\toolbox . It 
seems that Matlab is able to connect to R however I am facing a problem while 
trying to call R functions from within Matlab. I have loaded all required 
libraries. Shown below is the sequence of commands tried in blue, outcomes in 
black and errors/unexpected/ undesired outcomes in red colour, and my comments 
in black,italic  after the command:

>> [a b c] = openR

a =     1

b =     ''

c =     COM.StatConnectorSrv_StatConnector

>> Rdemo

b =     1     4     9    16    25    36    49    64    81   100

c =     2     5    10    17    26    37    50    65    82   101

I then tried running the Rdemo available on 
http://www.mathworks.com/matlabcentral/fx_files/5051/1/content/Rdemo.html

evalR('demo("persp")') works well. Also the arithmetic functions all work well:

a = 1:10;

putRdata('a',a)

b = evalR('a^2')

evalR('b <- a^2');

evalR('c <- b + 1');

c = getRdata('c')

However ‘Now copy the volcano data into MATLAB” section and all related 
sessions therefore don’t work.

>> volcano = getRdata('volcano')

volcano =     []

>> size(volcano)

ans =     0     0

>> surf(volcano);

(see the attached figure:surf_volcano_output.jpg)

It seems Matlab is able to read/get data from R. Other subsequent commands 
related to this section don’t work.

I tried looking at the loaded libraries in R and in Matlab. In R everything 
works well, but doesn’t seem to be so in Matlab:

>> [a b c] = evalR('.libPaths()')

a = C:/Program Files/R/R-2.13.1/library

b =     1

c =      ''

>> [a b c] = evalR('library()')

a =   'ActiveX VT_ERROR: '

    'base'

    'ActiveX VT_ERROR: '

b =     1

c =     ''

>> [a b c] = evalR('library(rgdal)')

a = 'rscproxy'

    'lattice'

    'fields'

    'spam'

    'rgdal'

    'sp'

    'stats'

    'graphics'

    'grDevices'

    'utils'

    'datasets'

    'methods'

    'base'

b =     1

c =     ''

As it shows that rgdal library is loaded, also the rscproxy library is loaded, 
in addition to all others. I tried following:

imshow(imread('testimg_p.tif')) displays the image properly, however calling 
this from R using rgdal from within Matlab gives error;

>> [a b c] = evalR('img <- readGDAL("testimg_p.tif")')

a =      []

b =      0

c = Invoke Error, Dispatch Exception: Object is static; operation not allowed

The command works from R prompt:

> img <- readGDAL("testimg_p.tif") 
testimg_p.tif has GDAL driver GTiff 
and has 280 rows and 272 columns

It is giving same error while loading gstat library:

>> [a b c] = evalR('library(gstat) ')

a =     []

b =     0

c = Invoke Error, Dispatch Exception: Object is static; operation not allowed

I guess the error is not related to readGDAL or gstat library but something 
else which I am unable to trace. I have also tried to explore if this is 
problem related to version of Matlab/windows 64/32 bit or R version but even 
that does not seem to be an issue. (I have tried this on two differemt machines 
one Workstation with WinXP 64 bit OS with R version 2.13.1and Matlab Version 
7.8.0 R2009a and also on another portable workstation with WinXP 32 bit OS with 
R version 2.12.1 and Matlab Version 7.8.0 R2009a. This indicates that version 
of R or Matlab or win version 64 bit/32 bit does not seem to be an issue.

I also checked for some solution on page 
http://www.mathworks.com/matlabcentral/fileexchange/5051 where others also 
faced somewhat similar problem and it was suggested to check for setting R_HOME 
and PATH variables in the environment variables for your system. I understand I 
had followed all instructions carefully and hopefully all paths/R_HOME were set 
correctly, as the command evalR('.libPaths()') recognized R home path 
correctly.  

I request R team to help.

Vandita Srivastava 
Scientist/Engineer "SE", 
Indian Institute of Remote Sensing(NRSC), 
ISRO/Department of Space, Govt. of India

>>Please don't print this Email unless you really need to - this will preserve 
>>trees 
on planet earth.

 

 

 

 

 

 

 

 
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to