Matlab - Ejecutar MATLAB desde Excel

 
Vista:
sin imagen de perfil
Val: 16
Ha aumentado 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Ejecutar MATLAB desde Excel

Publicado por Diego José (4 intervenciones) el 22/10/2018 11:29:55
Hola, buenos días a todos.

Me llamo Diego, y soy nuevo dentro de este foro.

Actualmente estoy en proceso de aprendizaje más avanzado dentro de la programación en Matlab. Mi problema en este momento es que quiero realizar un script en VBA para que ejecute Matlab sin necesidad de abrirlo manualmente.

Por distintos foros he encontrado diversos scripts, y todos me han fallado. Aquí os lo muestro:

1
2
3
4
5
6
7
8
9
10
11
Private Sub Datos()
Dim hMatlab As Object
Dim sDir As String, cdsDir As String, s1 As String
Dim Result As String
Set hMatlab = CreateObject("matlab.application")
s1 = "'"
sDir = s1 & ActiveWorkbook.Path & s1
cdsDir = "cd(C:\Users\diego\Desktop\Practicando MATLAB\EMX)"
hMatlab.Execute (cdsDir)
hMatlab.Execute ("PruebaVBA.m")
End Sub

Creo que el problema se encuentra a la hora de abrir el directorio de trabajo de Matlab, pero realmente no lo se.

Gracias a todos los que me ayudeis!!

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ejecutar MATLAB desde Excel

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 22/10/2018 19:40:42
1
2
3
Set hMatlab = CreateObject("Matlab.Application")
hMatlab.Execute ("plot(peaks(100))")
Application.DisplayAlerts = True

intenta ejecutar estos comandos a ver si se está ejecutando Matlab correctamente, si es así debería aparecerte una gráfica y el problema está cuando cambias el directorio de trabajo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 16
Ha aumentado 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Ejecutar MATLAB desde Excel

Publicado por Diego José (4 intervenciones) el 23/10/2018 10:18:05
Jesus David, gracias por contestar, pero al final he conseguido remodelarlo para que funcione. Lo dejo abajo, por si a alguien mas le interesa:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub Run_Matlab_Script()
 
    Dim hMatlab As Object
    Dim sDir As String, cdsDir As String, s1 As String
    Dim Result As String
    Set hMatlab = CreateObject("matlab.application")
    s1 = "'"
    sDir = s1 & ActiveWorkbook.Path & s1
    cdsDir = "cd(" & sDir & ")"
    hMatlab.Execute (cdsDir)
 
    'Load the m file in MATLAB.
    hMatlab.Execute ("Datos")

End Sub

He probado sin añadir la dirección del directorio de trabajo donde almaceno los ficheros .m donde tengo los scripts, añadiendo solo el nombre del fichero .m (sin el .m final, como se puede ver en el nombre de fichero Datos) y ha funcionado!.

También, como información añadida, en el caso de que se quieran correr varios scripts de Matlab, uno detrás de otro, con poner en orden de ejecución hMatlab.Execute("Nombre del fichero .m") es suficiente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar