【知識積累】Java調用Matlab

Java調用Matlab  

2010-10-10 16:27:51|  分類: 格物篤行|舉報|字號 訂閱

Java調用Matlab - 小白 - 小白的博客
Java調用Matlab


放下Matlab、走入Java有段時間了,兩種編程理念的轉換。不過還是很懷念從前Matlab編程的時代,抽空理一理,給出一個兩者結合運用的簡單示例。結合Java編程平臺無關性易擴展與Matlab豐富的庫函數工具箱編寫算法的優勢,在Java程序中調用Matlab


1 Java調用Matlab方法舉例
◆  Matlab編寫的m文件轉化爲COM(Component Object Model)組件,在Java程序中利用第三方工具包調用com組件,實現對Matlab程序的調用。
1) Jawin(Java/Win32)
jawin是一個免費開源的體系結構,用於 Java 組件和通過 Windows COM 對象或 Windows DLL 來公開的組件之間的互操作。代碼將能與諸如 MicrosoftOffice 套件等可編寫腳本的應用程序交互,調用諸如 Microsoft 的基於 COM  XML 解析器和工具等可編寫腳本的邏輯組件,以及訪問諸如 Windows 註冊表、安全 API 和事件日誌等 Win32 API 特性。
最新版本:jawin-2.0-alpha1.zip
下載地址:http://sourceforge.net/projects/jawinproject/files/
技術資料:http://jawinproject.sourceforge.net/jawin.html
2) Jacob(JAVA-COM Bridge)
JACOB是一個開始於 1999年的開源項目的成果,它提供自動化的訪問com的功能,也是通過JNI功能訪問windows平臺下的com組件或者win32系統庫。
最新版本:jacob-1.15-M3.zip
下載地址:http://sourceforge.net/project/showfiles.php?group_id=109543&package_id=118368
技術資料:http://sourceforge.net/projects/jacob-project/develop
  Matlab(version7.10) function程序m文件直接轉化爲*.jar包,在Java中調用。(利用Deployment Project
(下文中重點提及此方法)
◆  其他:JNI(Java Native Interface)等……
這裏採用第二種方法,給出一個Eclipse平臺下Java調用Matlab程序的簡單示例。


2   編譯環境
 JDK 1.6 
 Eclipse 3.4
 MatlabR2010a(7.10) :增加了Deployment Project功能
(原來一直使用的是Matlab7.1版本,比較穩定,不過對於一些新的擴展應用以及大容量的RS數據處理就顯得力不存心了;2010年3月發佈的R2010版本做了許多改進,程序比較大,安裝下來4G多,不過功能確實強大不少。對於較大的遙感數據,不會出現7.1及以前版本中out of memory等問題;wavemenu小波GUI工具箱中增加了Wavelet3-D小波功能,感興趣的話可以體驗一下~


3   應用舉例
Step1:Matlab編程
1) 編寫測試程序m文件
Function  plotsin()
Java調用Matlab - 小白 - 小白的博客
Function  plotcos()
Java調用Matlab - 小白 - 小白的博客
2) 建立Deployment Project
File >> New>> Deployment Project
Name:自定義項目名
TargetJava Package,建立jar
Java調用Matlab - 小白 - 小白的博客
3) 彈出Deployment Tool面板
Java調用Matlab - 小白 - 小白的博客
4) 添加function .m文件,轉化爲Java Class
Add class >> MathPlot(自定義Class)
Add files >> 添加 前面寫的plotsin.mplotcos.m文件(轉化爲MathPlot類的方法)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章