1、matlab项目的部署 -- 生成jar包
保存matlab文件,生成.m文件
%画图 自定义函数drawplot 参数 x yfunction drawplot(x, y)plot(x, y); %%使用matlab函数plot()作图 grid on %网格显示 xlabel('X轴值') ylabel('Y轴值') title('Java调用MatLab作图例子')
app --> library Compiler
选择生成类型为java package ,添加.m文件,配置名称等信息生成
生成包中带有jar文件
2、java项目配置
修改环境变量,path添加matlab的dll文件路径。jdk的版本一定要和matlab匹配,否则执行会报 Failed to find the required library mclmcrrt9_4.dll on java.library.path 。
jdk1.8兼容2018a版本的matlab
注意:还需要配置的环境变量 JAVA_HOME -- jdk的安装路径,MATLAB_JAVA -- jre路径
把matlab生成的jar包引入java项目
引入固定的java调用matlab必备的jar包javabuilder
执行调用程序:
import com.mathworks.toolbox.javabuilder.*;import drawplot.Class1;public class map { public static void main(String[] args) { // TODO Auto-generated method stub MWNumericArray x = null; // 存放x值的数组 MWNumericArray y = null; // 存放y值的数组 Class1 thePlot = null; // plotter类的实例(在MatLab编译时,新建的类) int n = 20; // 作图点数 try { // 分配x、y的值 int[] dims = { 1, n }; x = MWNumericArray.newInstance(dims, MWClassID.DOUBLE, MWComplexity.REAL); y = MWNumericArray.newInstance(dims, MWClassID.DOUBLE, MWComplexity.REAL); // 定义 y = x^2 for (int i = 1; i <= n; i++) { x.set(i, i); y.set(i, i * i); } // 初始化plotter的对象 thePlot = new Class1(); // 作图 thePlot.drawplot(x, y); //调用作图的matlab方法 thePlot.waitForFigures(); } catch (Exception e) { System.out.println("Exception: " + e.toString()); } finally { // 释放本地资源 MWArray.disposeArray(x); MWArray.disposeArray(y); if (thePlot != null) thePlot.dispose(); } }}
执行结果:
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删