java调用matlab程序
来源:互联网 发布:桌面手机支架 知乎 编辑:程序博客网 时间:2024/06/06 00:30
在项目中,经常使用matlab进行算法开发验证,然后java程序调用算法。因此,快速实现对算法的调用是缩短项目周期的重要一点。在matlab中通过编译生成供java使用的jar包,再通过调用jar包可实现快速调用matlab算法。
系统环境
matlab:2016a
java:jre1.7
eclipse:Mars.1 Release (4.5.1)
matlab
测试函数:
add.m
function [sum,m] = add(a,b)sum=a.*b;m=ims(a,b);end
- 1
- 2
- 3
- 4
ims.m
function [ m ] = ims( a,b )m=a+b;end
- 1
- 2
- 3
采用matlab的Library Compiler工具包打包m文件,选择java package类型,class名字命名为matlab,添加2个方法的m文件,打包生成matlab.jar文件。
找到\toolbox\javabuilder\jar文件夹下的javabuilder.jar文件。
java
在java项目中引用生成的matlab.jar和javabuilder.jar。测试代码如下:
//java调用matlab方法//matlab方法为[sum,m] = add(a,b)//java中方法为matlab实例的方法matlab.add(int,object...),返回值为object[]//其中输入的int为输出的个数,object...为输入参数,返回值object[]为输出的集合matlab matlab;//定义matlab类型try { matlab = new matlab();//实例化方法集合 int[][] a = new int[][]{{1, 0},{0,1}};//定义输入参数 int[][] b = new int[][]{{3, 2},{1,4}};//定义输入参数 Object[] rs = matlab.add(2,a,b);//调用方法1,方法1中调用方法2 System.out.println("输出结果1:"); System.out.println(rs[0]); MWNumericArray is = (MWNumericArray) rs[0];//转为matlab格式矩阵 System.out.println("输出第2行第2列数值:"); System.out.println(is.getInt(new int[]{2,2})); System.out.println("输出结果2:"); System.out.println(rs[1]); System.out.println("输出调用方法2的结果:"); System.out.println(matlab.ims(1, 12,3)[0]);//调用方法2} catch (MWException e) { e.printStackTrace();}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
输出结果为:
输出结果1: 3 0 0 4输出第2行第2列数值:4输出结果2: 4 2 1 5输出调用方法2的结果:15
阅读全文
0 0
- Java 调用 matlab 程序
- Java调用MATLAB程序
- java调用matlab程序
- java调用matlab程序
- java调用matlab程序
- java调用matlab程序
- 关于Java调用Matlab程序
- 使用Java程序调用MatLab
- Java调用MATLAB程序--输入输出
- 使用Java程序调用Matlab
- 在java程序中调用matlab程序
- 在Java程序中调用Matlab函数
- 在Java程序中调用Matlab函数
- 在Java程序中调用Matlab函数
- 在Java程序中调用Matlab函数
- Matlab调用c程序
- MATLAB调用C程序
- Matlab调用C程序
- 对于Qt中QString和char*之间的互相转换问题(系列二)
- request.getParameter() 和request.getAttribute() 区别
- java.lang.StringBuilder常用API
- Linux 下的KILL函数的用法
- 对开发者有用的英文网站合集,建议收藏
- java调用matlab程序
- WM8978学习
- 大数据分析的两个流程(实时与离线):
- 开发中遇到的垃圾回收
- Linux C++ 串口编程 详解+实例
- 《计算机中可编程内存分析》
- set/multiset map/multimap hash_set/hash_multiset hash_map/hash_multimap 区别与联系
- nginx 负载均衡配置
- 学习J2EE的路途(二)纯干货