2010-04-06 8 views
5

Es posible acceder a bits del código java interno de MATLAB para cambiar MATLAB programáticamente. Por ejemplo, puede abrir mediante programación un documento en el editor utilizandoObtención de ayuda en las tareas internas de MATLAB.

editorServices = com.mathworks.mlservices.MLEditorServices; 
editorServices.newDocument() %older versions of MATLAB seem to use new() 

se puede ver la firmas de método (pero no de lo que hacen) utilizando methodsview.

methodsview(com.mathworks.mlservices.MLEditorServices) 

Tengo algunas preguntas relacionadas con el uso de estos métodos de Java.

En primer lugar, ¿hay alguna documentación sobre estas cosas (ya sea de Mathworks o de otro tipo)?

En segundo lugar, ¿cómo averigua qué métodos están disponibles? Los que he encontrado parecen estar contenidos en archivos JAR en matlabroot \ java \ jar, pero no estoy seguro de cuál es la mejor forma de inspeccionar un archivo JAR.

En tercer lugar, ¿hay funciones para inspeccionar las clases, que no sean methodsview?

Finalmente, ¿hay algún método realmente útil que alguien haya encontrado?

Respuesta

14

No hay documentación oficial ni soporte para estas clases. Además, estas clases y métodos internos representan una implementación interna que puede cambiar sin previo aviso en cualquier versión futura de Matlab. Dicho esto, puede usar mis utilidades uiinspect y checkClass para investigar los métodos internos, las propiedades y los campos estáticos. Estas utilidades utilizan la reflexión de Java para hacer su trabajo, algo que también se hace con la función integrada de métodos (creo que mis utilidades son mucho más potentes). En este sentido, creo que no estamos cruzando la línea de ingeniería inversa que puede violar la licencia de Matlab.

Si está buscando documentación, entonces mi sitio web UndocumentedMatlab.com tiene muchos recursos relevantes, y se agrega más regularmente, así que esté atento.

También estoy trabajando en un libro que presentará una descripción muy detallada de todas estas clases internas, entre otras cosas indocumentadas. Espero tener noticias de publicaciones a finales de este año.

1

Para obtener más información sobre los objetos java, uso uiinspect.

El único lugar que sé que documenta las cosas ocultas de Java de Matlab es Undocumented Matlab por Yair Altman. Su sitio enumera muchos trucos muy útiles. Poder usar Java para formatear texto en cuadros de lista me ha resultado muy útil, por ejemplo.

EDITAR

The man ha hablado. Escúchalo, ya que no creo que haya alguien fuera de MathWorks que sepa más sobre el código Java interno de Matlab.

1

Soy un fanático del eclipse. Si usa eso como su IDE, el jar puede importarse en uno de sus proyectos y puede inspeccionar los métodos allí.

Cuestiones relacionadas