2010-04-06 9 views
5

È possibile accedere ai bit del codice java interno di MATLAB per modificare a livello di codice MATLAB stesso. Ad esempio, è possibile a livello di codice aprire un documento nell'editor usandoCome ottenere assistenza sugli interni di com.mathworks di MATLAB

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

si possono vedere le firme dei metodi (ma non quello che fanno) utilizzando methodsview.

methodsview(com.mathworks.mlservices.MLEditorServices) 

Ho alcune domande correlate sull'utilizzo di questi metodi Java.

In primo luogo, c'è qualche documentazione su queste cose (o dal Mathworks o in altro modo)?

In secondo luogo, come si individuano i metodi disponibili? Quelli che ho trovato sembrano essere contenuti nei file JAR in matlabroot \ java \ jar, ma non sono sicuro di quale sia il modo migliore per ispezionare un file JAR.

In terzo luogo, ci sono funzioni per l'ispezione delle classi, ad eccezione di methodsview?

Infine, ci sono dei metodi veramente utili che qualcuno ha trovato?

risposta

14

Non esiste documentazione ufficiale né supporto per queste classi. Inoltre, queste classi e metodi interni rappresentano un'implementazione interna che può cambiare senza preavviso in qualsiasi versione futura di Matlab. Detto questo, è possibile utilizzare le utilità uiinspect e checkClass per analizzare i metodi interni, le proprietà e i campi statici. Queste utilità utilizzano la riflessione Java per svolgere il proprio lavoro, cosa che viene eseguita anche dalla funzione integrata metodi (credo che le mie utilità siano molto più potenti, però). A tale riguardo, credo che non stiamo superando la linea di reverse engineering che potrebbe violare la licenza di Matlab.

Se si sta cercando la documentazione, il mio sito Web UndocumentedMatlab.com dispone di numerose risorse pertinenti, e altre sono aggiunte regolarmente, quindi tenete aggiornato.

Sto anche lavorando a un libro che presenterà una panoramica molto dettagliata di tutte queste classi interne, tra le altre cose non documentate - spero di avere notizie di pubblicazione più avanti quest'anno.

1

Per ulteriori informazioni sugli oggetti java, utilizzo uiinspect.

L'unico posto che so che sta documentando il materiale nascosto Java Matlab è Undocumented Matlab entro il Yair Altman. Il suo sito elenca un sacco di trucchi molto utili. Ad esempio, essere in grado di usare Java per formattare il testo nelle caselle di elenco è molto utile per me.

EDIT

The man ha parlato. Ascoltalo, dato che non penso ci sia nessuno al di fuori di MathWorks che ne sappia di più sul codice java interno di Matlab.

1

Sono un fan di eclissi. Se lo usi come IDE, il barattolo può essere importato in uno dei tuoi progetti e puoi controllare i metodi presenti.

Problemi correlati