java调用matlab的函数
Matlab,jdk,maven管理的springboot项目
function [x,y,z] = jarDemo(arg)
disp("hello world from matlab");
disp(arg);
x = 1;
y = 2;
z = 3;
end
Compiler
和Compiler SDK
,如果没有的话在命令行运行deploytool
命令时会报错,会提示安装三个东西,并且点击下划线的红字可以直接打开这两个附件的安装窗口,安装即可(需要正版?)Library Compiler
Compiler
而没有安装Compiler SDK
的话TYPE栏只会有一个Excel Add-in
,没法用;选择Java Package,点击加号找到需要打成jar包的函数文件jarDemo.m,可以改一下类名,这个随意,最终找个文件夹导出即可import jarDemo.TestClass; // 这个是我们自己写的jarDemo.m函数
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;
import com.mathworks.toolbox.javabuilder.*; // 这个是必须的,对matlab的支持
public class matlabTest
{private static final Logger log = LoggerFactory.getLogger(matlabTest.class);@Testpublic void test1() {log.info("开始运行");try {TestClass t = new TestClass();Object[] result = t.jarDemo(3, "ok?"); //第一个参数是指定返回结果的个数;第二个参数起是传入matlab函数的参数,多个用逗号隔开。for (Object obj : result){log.info(obj.toString());}} catch (MWException e) {e.printStackTrace();}log.info("运行结束");}
}
jarDemo.m里的disp在IDEA控制台输出了,t.jarDemo()的第二个参数"ok?"也传到了matlab代码里,也disp了,返回的三个结果x,y,z也打印出来了