在Java中调用MATLAB函数

在Java中调用MATLAB函数
一.准备工作:配置Java环境,jre版本为1.7;安装MATLAB(2016a版),MATLAB自带jre版本也是1.7(两者一致)
*查看MATLAB中jre版本语句:》version –java
二.具体操作步骤
1.MATLAB中:
1)新建脚本,在脚本中使用function命令定义.m文件
这里写图片描述
保存脚本:将.m文件保存到某新建文件夹下(eg./桌面/ mjtest)
2)在命令行窗口输入deploytool命令  选择LibraryComplier  TYPE:JavaPackage 
 AddExported function:添加之前写好的.m文件  编辑className(此处修改的类名,即为之后在java程序中调用函数的函数名) 打包并保存在mjtest文件夹中  最后会在mjtest中生成一个文件夹和.prj文件(此处可命名为drawplot.prj,则文件夹名默认为drawplot)
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

2.在Java中:
1)新建工程
2)工程 > lib(新建此文件夹存放jar包) > 导入两个jar包(一个是在matlab安装目录下的这里写图片描述

另一个是在mjtest文件夹中
这里写图片描述
3)配置两个Jar包 BuildPath > ConfigureBuildPath > AddJARs > 把刚刚放在lib下的两个jar包添加,完成效果
这里写图片描述
3.在Java中:
1)新建Test类
2)编辑代码并运行
(注:import com.mathworks.toolbox.javabuilder.*,
import drawplot.plotter ; //此处drawplot是jar包名,plotter是类名)

import com.mathworks.toolbox.javabuilder.*;
import drawplot.plotter;

public class Test {

public static void main(String[] args) {  
    // TODO Auto-generated method stub  
    MWNumericArray x = null; // 存放x值的数组  
    MWNumericArray y = null; // 存放y值的数组  
    plotter 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 plotter();  

        // 作图  
        thePlot.drawplot(x, y);  
        thePlot.waitForFigures();  
    }  

    catch (Exception e) {  
        System.out.println("Exception: " + e.toString());  
    }  

    finally {  
        // 释放本地资源  
        MWArray.disposeArray(x);  
        MWArray.disposeArray(y);  
        if (thePlot != null)  
            thePlot.dispose();  
    }  
}  

}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值