1.創(chuàng)建matlab函數(shù) test.m
function [m] = test(x)
m=x+1;
end
2.將創(chuàng)建的函數(shù)打包成jar包
①在matlab中執(zhí)行deploytool命令苦锨,然后選擇Library Compiler
②然后選擇Java package拧揽,再導(dǎo)入需要打包的函數(shù)(導(dǎo)入多個(gè)函數(shù)會(huì)將其打入一個(gè)包中),點(diǎn)擊package就能打包了蛆挫。界面下方還能指定Class Name等。
③打包完成后會(huì)生成相關(guān)文件夾妙黍,下面那個(gè)prj是matlab的不用管悴侵。(打包時(shí)如果提示出錯(cuò),但是有文件生成拭嫁,此時(shí)可用可免,打開(kāi)錯(cuò)誤日志可知不是要用到的jar文件出錯(cuò)。)
④打開(kāi)文件夾后進(jìn)入for_redistribution_files_only文件夾
⑤里面的jar文件就是需要的jar包
⑥除了這個(gè)jar包外還需要另外一個(gè)jar包做粤,在matlab的安裝路徑下去找浇借,比如:D:\Matlab\toolbox\javabuilder\jar\javabuilder.jar
⑦然后將test.jar和javabuilder.jar文件復(fù)制到j(luò)ava工程里。創(chuàng)建一個(gè)lib文件夾然后放進(jìn)去怕品,在idea中右鍵單擊lib文件夾選擇Add as Library
⑧可以看到test.jar里面的內(nèi)容如下
3.Java測(cè)試
測(cè)試代碼如下妇垢,可以看到最基本的使用就是創(chuàng)建Class1的對(duì)象(這個(gè)名稱在前面的步驟中可以設(shè)置),然后調(diào)用其中的方法(名稱就是matlab中函數(shù)的名稱)肉康。
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); //第一個(gè)參數(shù)是指定返回結(jié)果的個(gè)數(shù)闯估;第二個(gè)參數(shù)起是傳入matlab函數(shù)的參數(shù),多個(gè)用逗號(hào)隔開(kāi)吼和。
System.out.println(result[0]);
} catch (MWException e) {
e.printStackTrace();
}
}
}
執(zhí)行的結(jié)果如下涨薪,那個(gè)Unable沒(méi)有管它(測(cè)試時(shí)在matlab函數(shù)中添加modbus相關(guān)內(nèi)容也能執(zhí)行成功且能夠通信)
額外的:點(diǎn)開(kāi)test方法可以看到有三個(gè)重載方法
4.總結(jié)
此為個(gè)人備忘筆記