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
Post by unknownHola 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