Java与Matlab混合编程
来源:互联网 发布:c4d软件有多大 编辑:程序博客网 时间:2024/05/02 17:49
Java与Matlab混合编程
注意:转载请说明,来自转自itboy-木小草,尊重原创,尊重技术。
环境要求
Matlab至少是2015a及以上版本,之前我用的2014b怎么都不行,最后在http://www.matlabsky.com/上看到说是2014班没有破解完全
java我用的1.7,应该没什么要求
matlab导jar包
写好matlab之后,在控制台打deploytool
,选择导出jar包,起名字,选择路径什么的,都很简单,然后完成了还要等一会,就能得到jar包了。
使用Matlab的jar包
在java工程属性的BuildPath中添加两个jar包:
matlabroot\toolbox\javabuilder\jar\javabuilder.jar
TestDirectory\flying.jar编写函数示例如下
package test; /** * test for a Matlab Call **/ import com.mathworks.toolbox.javabuilder.*; import flying.*; public class testMatlabClass { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try { System.out.println("Begin"); flyingclass flyingDraw=new flyingclass(); System.out.println("Middle"); flyingDraw.mydraw(7,2); System.out.println("Here"); }catch (Exception e){ System.out.println(e); } } }
- 如果不能正常运行,可以考虑在 classpath 中,加入 flying.jar 所在的位置。
详细
参见 matlab 的帮助文件
http://www.simwe.com/forum/archiver/tid-747229.html
数据类型相关
Java 的数值型数组,可以直接作为输入参数传递到 .m 文件上。
如:mydraw(x,y) ,可以画x=[1 2 3 4] ,y=[3.3 -5 6 10.2]这样的线图。Java调用该方法时候,如果传递的参数是整型或者实数型数组,则直接可成功。如java中:
int[] a = new int[4]; int[] b = new int[4]; // 给 a,b 赋值 …// … // 调用 flyingclass flyingDraw = new flyingclass(); flyingDraw.mydraw(a,b);
注意:a,b 最好所有有索引的位置都有值,否则如果没有充分赋值曲线可能会最终折回(0,0)点。
Matlab程序(.m文件)的修改
找到TestDirectory\flying.jar所在的位置(因为按照上述步骤的话,.m源文件就在该位置附近)。这个位置,从Eclipse的Package Explore可以用看到。
直接修改欲改动的.m文件
打开Matlab, 在Command输入Deploytool, 在新打开的部署面板中,“打开”该m文件所在的工程,如flying.prj。
选中相应工程下Class 文件夹下的.m文件,点击工具栏的Build按钮。
则相应源文件被重新编译。如果按照前面步骤添加的jar包,则编译后新生成的jar包自动替换掉原有的jar。又由于这个jar的位置已经作为BuildPath告诉了java的相应工程,因此Java端不需要做任何调整即可正确调用到新修改了内容的matlab方法。
注意:转载请说明,来自转自itboy-木小草,尊重原创,尊重技术。
- Matlab与Java混合编程
- java与matlab混合编程
- Java与Matlab混合编程
- MATLAB混合编程专题_MATLAB与JAVA
- Matlab与Java混合编程的教程
- 《java与MATLAB混合编程》之《java调用MATLAB作图》
- Java与Matlab混合编程环境配置与实例分析
- Matlab与VC混合编程
- Matlab与VC混合编程
- vc与matlab混合编程
- Matlab与VC混合编程
- Matlab与VC混合编程
- matlab与c++混合编程
- VB与Matlab混合编程
- c#与matlab混合编程
- MATLAB与C#混合编程
- Matlab与C#混合编程
- VS2008与Matlab混合编程
- maven 镜像仓库与资源文件
- 文章标题
- Java 多线程(六)——进程间通信与线程间通信
- 我的Linux书架
- Unix域套接字传递描述符字
- Java与Matlab混合编程
- c/C++中后缀obj/o lib/a dll/so bin文件意义
- c语言排序算法
- matlab conv2、filter2、imfilter的区别
- jQuery对表单表格的操作
- 毕业设计第二十九天
- FBO上画三角形
- Hadoop 实例二 Join讲解1: 获取员工所在部门信息
- TrueType TTC格式详解