Connecting MATLAB to R
The statistical programming language R has a COM interface. We can use this to execute R commands from within MATLAB. The connection requires a local installation of R and also of the R-(D)COM Interface (for Windows only). This can be downloaded from http://lib.stat.cmu.edu/R/CRAN/other-software.html or other CRAN mirror site.
Contents
Connect to an R Session
[status,msg] = openR; if status ~= 1 disp(['Problem connecting to R: ' msg]); end
Run one of the R demos to test the connection.
evalR('demo("persp")'); Now copy the volcano data into MATLAB
volcano = getRdata('volcano'); Use SURF to plot the volcano
surf(volcano); axis off; view(-135,40);
You can also copy the colormap from R
cols = char(evalR('terrain.colors(20)')); red = hex2dec(cols(:,[2 3])); green = hex2dec(cols(:,[4 5])); blue = hex2dec(cols(:,[6 7])); colormap([red,green,blue]/256);
Another view
The R variable z has edges filled in for more realistic viewing. The surface is flipped around in the R version.
z = getRdata('z'); h = surf(fliplr(z)); axis off; view(-135,40);
Add some lighting and turn off the edges
lightangle(-135,40); lighting gouraud set(h,'linestyle','none');
Now do some arithmetic in R. First push some data into R.
a = 1:10; putRdata('a',a) Run a simple R command
b = evalR('a^2') b = 1 4 9 16 25 36 49 64 81 100
Run a series of commands and grab the result
evalR('b <- a^2'); evalR('c <- b + 1'); c = getRdata('c') c = 2 5 10 17 26 37 50 65 82 101
Close the connection
closeR