創(chuàng)建MATLAB代碼的Java應(yīng)用程序

如果你羨慕 Matlab 功能的強大、算法的精致、矩陣運算的便捷,又想遷移到別處使用,該怎么弄?以下這篇文章簡單介紹如何從一個 .m 文件生成 jar 文件,并且成功運行。
在這先推薦下 Matlab 版本,老版本推薦 r2008a,較新的版本推薦 r2015a,其他的版本在生成 java 應(yīng)用程序中容易出現(xiàn)各種意想不到的錯誤。

準備

1. 在 Matlab 中,檢查需要部署為 java 包的 .m 文件

1.1 打開需要部署的 .m 文件,在這我建立了一個可指定生成幾介的隨機矩陣 makesqr.m 文件

function y = makesqr(x)

y = magic(x);

1.2 在 matlab 的命令窗口上方先進入剛建立的 .m 文件目錄,再在命令窗口下輸入 a = makesqr(5),輸出的結(jié)果如下:

a =
    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

2. 打開 Library Compiler

2.1 在命令窗口 輸入 delpoytool 出現(xiàn) Compiler 窗口

2.2 選擇 Library Compiler


2.3 在窗口上方 Appliction Type 欄中選擇Java Package

2.4 指定要部署的 Matlab 函數(shù)

  • 在窗口上方 Exported Functions 欄選擇添加按鈕
  • 在文件游覽框中選擇之前創(chuàng)建的 makesqr.m 文件,

2.5 在窗口上方 Packaging Options 欄中勾上 Runtime downloaded from web

2.6 在窗口右上角點擊 Package


2.7 在新彈出的框中選擇 Open output folder when process completes

2.8 創(chuàng)建完成之后出現(xiàn)以下文件


  • for_redistribution — 包含安裝程序軟件包分發(fā)文件夾
  • for_testing — 包含原始生成的文件來創(chuàng)建安裝程序文件夾
  • for_redistribution_files_only — 僅包含重新分發(fā)包所需要的文件夾
  • PackagingLog.txt — 由編譯器生成的日志文件

2.9 關(guān)閉 Package 窗口

3. 安裝 MCR(Matlab Compiler Runtime)

3.1 MCR一般位于:
MatlabROOT\toolbox\compiler\deploy\win64\MCRInstaller.exe

  • 注意 MatlabROOT 為你的Matlab安裝路徑
  • 環(huán)境變量 CLASSPATH也要加入 javabuilder,其位置位于:
    matlabROOT\toolbox\javabuilder\jar\javabuilder.jar
    • 注意:matlabROOT 為你 matlab 安裝目錄

3.2 依次點擊安裝即可,一定記住安裝位置

4. 打開 for_testing 文件夾

4.1 這里有 .m 文件生成的 jar 文件,創(chuàng)建一個新的文件命名為 getmagic.java

4.2 利用文本編輯器打開 getmagic.java 文件

4.3 將一下的 java 代碼復制到 getmagic.java 文件中,保存

5. 編譯、運行應(yīng)用

5.1 打開 cmd 命令,進入到 for_testing 文件夾

5.2 編譯:
javac -
classpath"mcrROOT\toolbox\javabuilder\jar\javabuilder.jar";.\makesqr.jar .\getmagic.java

  • 注意 mcrROOT 為你安裝 MCR 的目錄

5.3 運行:
java -
classpath.;"mcrROOT\toolbox\javabuilder\jar\javabuilder.jar";.\makesqr.jar getmagic 5

  • 注意 mcrROOT 為你安裝 MCR 的目錄
H(KE7R8~}$5OXTLLKZWMSWN.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,502評論 19 139
  • 本博客轉(zhuǎn)載自http://blog.csdn.net/wengdada/article/details/52017...
    marine0131閱讀 4,306評論 0 1
  • 一、分類視圖 MATLAB各個類別內(nèi)的產(chǎn)品之間是有相互依賴關(guān)系的,所以有時不能單單取消某一個產(chǎn)品的安裝。如果不需要...
    頑強的貓尾草閱讀 16,614評論 1 11
  • 今天,有位年輕的妹子在微信圈里說:一個女人的優(yōu)秀不在你容貌,不是你有錢或者你有豪宅,而是你身邊站著一個優(yōu)秀的...
    邙風閱讀 1,101評論 0 0
  • 大雨滂沱醉灑大地 爾后醞釀空氣 呼——吸 我的骨我的血全被更新 麻木的心臟重新感知悸動的痛 清晨,最本質(zhì)的溫度 白...
    薛薛聰閱讀 723評論 2 2

友情鏈接更多精彩內(nèi)容