[R-es] Matlab to R

Xavier de Pedro xavier.depedro en ub.edu
Lun Dic 14 18:22:54 CET 2009


Hola Pablo:

Por si te sirve... Yo hace años tenía unos scripts en matlab de 
procesado de datos y visualización de gráficos, y los convertí a R para 
poder publicar la tesis, codigo fuente de un modelo de balances de masa 
en ecosistemas (fortran 90)  y los scripts de visualización de gráficos 
(en R) con licencias libres (GPL y CC-by-sa).

Si bien no tuve que convertir funciones estadísticas en mi caso (no las 
usé), me ayudó mucho un documento que compara de forma tabulada la 
sintaxis en matlab, scipy, octabe, scilab y R de las principales 
funciones. Un pdf que me fue de fábula en la semanas que me llevó 
convertir el código.

Había mirado opciones hi-tech de usar arrchivos MEX, pasar por C, y no 
sé queé otras cosas semi automáticas más (que me acabaron dando 
problemas y no me aseguraban el éxito en la conversión efectiva a R). 
Así que opté por el camino lento pero seguro: convertir a mano los scripts.
 
Por si te sirve de ejemplo te dejo el enlace del "pdf" que me sacó del 
apuro a mi en verano del 2007:
http://mathesaurus.sourceforge.net/matlab-python-xref.pdf

y la url de los scripts sencillos de matlab originales míos y los 
convertidos a R.
http://sourceforge.net/projects/ommel/

Por si sirve de algo...

Saludos

Xavi

P.d: Ups, acabo de hacer una búsqueda rápida, y parece que efectivamente 
en estos dos años puede haber documentos  más fáciles para ayudarte en a 
migración. A bote pronto, "San Google" me indica:
http://www.math.umaine.edu/~hiebeler/comp/matlabR.pdf

En/na miguel.angel.rodriguez.muinos en sergas.es ha escrit:
> Hola Pablo.
>
> La manera más directa de "conectar" Matlab y R es a través del package R.matlab
> Te pongo aquí un pequeño ejemplo para que veas como se haría.... Lo que construiremos será una conexión cliente/servidor entre R (cliente) y Matlab (server).
>
> # Para ello cargamos la librería
> library(R.matlab)
> # Establecemos la conexión entre los dos programas
> Matlab$startserver()
> # Asignamos el host a una variable
> matlab<-Matlab(host="localhost")
> # usamos la función "evaluate" para ejecutar código (de ejmplo) en Matlab
> evaluate(matlab,"u=rand(1,1000);")
> # usamos la función "getVariable" para traernos a R el resultado
> u<-getVariable(matlab,"u")
>
> ... Vaya.... Escribiendo este correo acabo de leer otro tuyo en el que cuentas que no tienes Matlab (supongo que sí tendrás Octave, de todas formas....). Bueno, pues olvida todo esto (que no borro porque es una pena... Ya que me he pasado el trabajo de escribirlo...).
> :-)
>
> Un comentario al margen; dentro de ese paquete puedes usar las funciones readMAT() y writeMAT() sin tener Matlab (aunque me temo que tu menor problema es leer ficheros Matlab de datos).
>
> Por lo que cuentas, creo que debieras explorar la posibilidad de migrar el código de MatLab a R con algún paso intermedio (Fortran, por ejemplo).... Me suena que desde Octave se usa la función mkoctfile() para cosas parecidas... No sé exactamente cómo hace Matlab, aunque me suena que puedes crear archivos MEX (cuidado que igual estoy metiendo la pata... No recuerdo si los MEX son para ejecutar código Fortran en Matlab o viceversa). Simplemente estoy intentado darte alguna idea por si te sirve de algo.
>
> Vamos, que después de haber escrito todo esto, creo que no vale de nada!
> :-(
>
> Un Saludo,
> Miguel.
>
>
>
> -----Mensaje original-----
> De: r-help-es-bounces en r-project.org [mailto:r-help-es-bounces en r-project.org] En nombre de Pablo Emilio Verde
> Enviado el: miércoles, 09 de diciembre de 2009 10:25
> Para: r-help-es en r-project.org
> Asunto: [R-es] Matlab to R
>
> Hola,
>
> Tengo algunos ejemplos de analisis estadisticos que han sido implementados en Matlab y me gustaria traducirlos a R.
>
> Existe algun traductor de "Matlab to R" o tengo que hacerlo manualmente?
>
> Gracias y saludos,
>
> Pablo
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
>
>
>
>
>
>
> Nota: A información contida nesta mensaxe e os seus posibles documentos adxuntos é privada e confidencial e está dirixida únicamente ó seu destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe, por favor elimínea. A distribución ou copia desta mensaxe non está autorizada. 
>
> Nota: La información contenida en este mensaje y sus posibles documentos adjuntos es privada y confidencial y está dirigida únicamente a su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje, por favor elimínelo. La distribución o copia de este mensaje no está autorizada.
>
> See more languages: http://www.sergas.es/aviso_confidencialidad.htm 
>
> XACOBEO 2010: http://www.xacobeo.org
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>



Más información sobre la lista de distribución R-help-es