可以访问MATLAB的内部java代码,以编程方式更改MATLAB本身。例如,您可以使用
以编程方式在编辑器中打开文档editorServices = com.mathworks.mlservices.MLEditorServices;
editorServices.newDocument() %older versions of MATLAB seem to use new()
您可以使用methodsview
查看方法签名(但不是他们的工作)。
methodsview(com.mathworks.mlservices.MLEditorServices)
我有一些关于使用这些Java方法的相关问题。
首先,是否有关于这些内容的任何文档(来自Mathworks或其他方式)?
其次,您如何找到可用的方法?我遇到的那些似乎包含在matlabroot \ java \ jar中的JAR文件中,但我不确定检查JAR文件的最佳方法是什么。
第三,是否有除methodsview
以外的检查类的功能?
最后,有没有人找到任何真正有用的方法?
答案 0 :(得分:14)
这些课程没有官方文件或支持。此外,这些类和内部方法代表内部实现,在未来任何Matlab版本中可能会发生变化,恕不另行通知。这就是说,您可以使用我的uiinspect和checkClass实用程序来调查内部方法,属性和静态字段。这些实用程序使用Java反射来完成它们的工作,这也是由内置的 methodsview 函数完成的(我相信我的实用程序功能更强大)。在这方面,我相信我们并没有跨越可能违反Matlab许可的逆向工程。
如果您正在寻找文档,那么我的UndocumentedMatlab.com网站会提供大量相关资源,并会定期添加更多资源,请继续关注。
我也在写一本书,它将对所有这些内部课程以及其他未记载的内容进行非常详细的概述 - 我希望今年晚些时候能有出版新闻。
答案 1 :(得分:1)
要了解有关java对象的更多信息,请使用uiinspect。
我所知道的唯一记录Matlab隐藏Java内容的地方是Undocumented Matlab Yair Altman。他的网站列出了许多非常有用的技巧。例如,能够使用Java来格式化列表框中的文本对我来说非常方便。
修改强>
The man已经发言了。听他说,因为我认为MathWorks之外没有人知道Matlab的内部java代码。
答案 2 :(得分:1)
我是一个日食爱好者。如果您将它用作IDE,则可以将jar导入到您的某个项目中,然后可以检查其中的方法。
答案 3 :(得分:0)
Undocumented Matlab是一个开始寻找的好地方。