1.創建matlab函數 test.m
function [m] = test(x)
m=x+1;
end
2.將創建的函數打包成jar包
①在matlab中執行deploytool命令,然后選擇Library Compiler
②然后選擇Java package,再導入需要打包的函數(導入多個函數會將其打入一個包中),點擊package就能打包了。界面下方還能指定Class Name等。
③打包完成后會生成相關文件夾,下面那個prj是matlab的不用管。(打包時如果提示出錯,但是有文件生成,此時可用,打開錯誤日志可知不是要用到的jar文件出錯。)
④打開文件夾后進入for_redistribution_files_only文件夾
⑤里面的jar文件就是需要的jar包
⑥除了這個jar包外還需要另外一個jar包,在matlab的安裝路徑下去找,比如:D:\Matlab\toolbox\javabuilder\jar\javabuilder.jar
⑦然后將test.jar和javabuilder.jar文件復制到java工程里。創建一個lib文件夾然后放進去,在idea中右鍵單擊lib文件夾選擇Add as Library
⑧可以看到test.jar里面的內容如下
3.Java測試
測試代碼如下,可以看到最基本的使用就是創建Class1的對象(這個名稱在前面的步驟中可以設置),然后調用其中的方法(名稱就是matlab中函數的名稱)。
import com.mathworks.toolbox.javabuilder.MWException;
import test.Class1;
import org.junit.Test;
public class testA {
@Test
public void test1() {
try {
Class1 t = new Class1();
Object[] result = t.test(1, 1); //第一個參數是指定返回結果的個數;第二個參數起是傳入matlab函數的參數,多個用逗號隔開。
System.out.println(result[0]);
} catch (MWException e) {
e.printStackTrace();
}
}
}
執行的結果如下,那個Unable沒有管它(測試時在matlab函數中添加modbus相關內容也能執行成功且能夠通信)
額外的:點開test方法可以看到有三個重載方法
4.總結
此為個人備忘筆記