关于Java调用Matlab程序
来源:互联网 发布:合并报表知乎 编辑:程序博客网 时间:2024/06/05 13:36
关于Java调用Matlab程序
一、基本步骤
- 编写M文件
- 生成Java调用包
在Matlab命令中输入deploytool,新建一个Java Package工程,在其中可以新建类,在类中添加M文件,点击bulid,生成供Java调用的Jar包。添加到类中的M函数成为该类的成员函数。
注:需要在操作系统环境变量path中添加javac的位置。
尽量避免将工程放在中文目录下,否则build容易出现错误。
- 编写Java调用程序
调用类的函数时,第一个输入参数是返回值的个数,然后是原来的参数列表。返回值为Object[]类型。具体可参照第二步骤生成的文档。
二、注意事项:
Java调用与在Matlab命令窗口调用m函数结果有所不同。
三、示例:
Matlab程序:
function output = plotXY(x,y)
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
plot(x,y);
output=x+y;
end
Java程序:
import java.util.Scanner;
import PlotXY.*;
import com.mathworks.toolbox.javabuilder.*;
public class DrawPlot {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Plot xy=null;
Object[] result;
MWNumericArray resultX;
MWNumericArray x = null; /* Array of x values */
MWNumericArray y = null; /* Array of y values */
int n = 5;
Scanner sc = new Scanner(System.in);
try {
/* Allocate arrays for x and y values */
int[] dims = { 1, n };
x = MWNumericArray.newInstance(dims, MWClassID.DOUBLE,
MWComplexity.REAL);
y = MWNumericArray.newInstance(dims, MWClassID.DOUBLE,
MWComplexity.REAL);
System.out.println("Please Input X-Y: ");
/* Set values */
for (int i = 1; i <= n; i++) {
System.out.println("Input X-Y " + i + ": ");
x.set(i, sc.nextDouble());
y.set(i, sc.nextDouble());
}
xy = new Plot();
result = xy.plotXY(1 ,x , y);
resultX=(MWNumericArray)result[0];
System.out.println(result[0]);
for (int i = 1; i <= n; i++) {
System.out.println(resultX.getFloat(i));
}
xy.waitForFigures();
xy.dispose();
} catch (Exception e) {
e.printStackTrace();
} finally {
/* Free native resources */
MWArray.disposeArray(x);
MWArray.disposeArray(y);
if (xy != null)
xy.dispose();
}
}
}
- 关于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程序
- 2012腾讯实习笔试归来兮辞
- Java同步解决方案
- Myeclipse deploy 项目时 exploded archive模式 与 packaged archive模式区别
- zoj 3609
- 黑马程序员 C#统计一行字符串中各个字母出现的频率(不考虑大小写,不考虑其他字符)
- 关于Java调用Matlab程序
- 4_13_天天一记
- 基于Visual Studio2012实现Windows8的metro界面笔迹手写识别文档
- 用apache在局域网里其他用户访问IP来访问网站
- 浅析multi range read(MRR) & batch key access(BKA) & block nested loop(BNL)
- Trying to install an already registered mbean
- web UI 框架
- XenOprof 错误 Failed to open profile device: Operation not permitted 的解决
- hdoj 3639 Hawk-and-Chicken