Chinaunix首页 | 论坛 | 博客
  • 博客访问: 184589
  • 博文数量: 40
  • 博客积分: 1768
  • 博客等级: 上尉
  • 技术积分: 410
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-28 18:15
文章分类
文章存档

2012年(4)

2011年(11)

2010年(10)

2009年(6)

2008年(9)

分类: Java

2010-11-05 15:53:28

Matlib是强大的数学计算工具,可以在Java中调用Matlib的函数。
例如,在Matlib中定义函数:
function y = MainFunction_d(parain)
函数MainFunction_d接收参数parain,有返回值y。

在java中如何在调用时传输参数并获得返回值呢?

mainfunction mf = new mainfunction();  
//mainfunction时Matlib编译.m文件生成的java对象,这里构造java对象,可以调用到matlib的函数

String[] in = {"……"};
Object[] out = new Object[1];
mf.MainFunction_d(out, in);

//这里In代表输入参数,out代表函数的返回值,这样就可以拿到Matlib的函数的结果了

matlib中有一种特有的类型,cell数组,他是二维数组,数组中的每个元素都是一个cell数组,是不限递归的,这样可以表示很复杂的数据结构。Java中没有对应的数据结构,需要用下面的方式获得其数据:

MWNumericArray ma  = (MWNumericArray) out[0];           
ArrayList result = new ArrayList();
Object[] array = ma.toArray(); //转换为一维数组

for(Object aa : array){
  double[] a = (double[])aa; //每个数组元素double数组
  result.add(a);
}

最后,结果转换为ArrayList result
           


阅读(3451) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~