最近做一個項目,需要很多進行很多信號處理——小魏就是學軟件的,對信號處理簡直是個小白,最簡單的實現就是傻瓜似的調用MATLAB的各種工具箱,達到目的就行。
同時,MATLAB是種解釋性語言,執行效率比較低,不適用與通用編程平台,同時圖形化編程也非常不方面,一舉兩得的是能在其他語言(VC++\Java)程序中調用MATLAB編寫的函數。
好,牛刀小試,嘗試在Java中調用MATLAB!
1)實驗環境
機器中裝有Eclipse和Matlab,並配置好環境變量。
小魏裝的是Eclipse 3.7.1 和Matlab7.11.0 (R2010b)。當然要裝有JDK,Eclipse的配置不多說了,網上有許多,至於Matlab,最好在classpath中添加:
%matlabInstallRoot%\R2010b\toolbox\javabuilder\jar\javabuilder.jar
這裡說“最好”,是因為不添加,只在項目中引用,貌似也是可行的。
P.S. 如果是VC++中調用MATLAB,一定要在path中添加:
%matlabInstallRoot%\R2010b\bin\win32
2)將Matlab的m文件包裝成java類
這裡我們使用Matlab自帶的例子,在路徑
%matlabInstallRoot%\R2010b\toolbox\javabuilder\Examples\PlotExample
下,此處是m文件:
function drawplot(x, y)
plot(x, y); %%使用matlab函數plot()作圖
在MATLAB中Command窗口中輸入deploytool調出部署工具DeploymentTool。新建一個工程,輸入工程名plotdemo.prj,選擇路徑,並選擇Target為 Java Package。
在MATLAB右側會出現我們新建的工程。
將剛剛編寫的m文件直接拖拽進去,並重命名類名為plotter,點擊Build編譯:
完成之後(過程有點長~)就會在我們選擇的路徑下看到 plotdemo的文件夾。