在Java中调用Matlib函数的方法

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<double[]> result = new ArrayList<double[]>();
Object[] array = ma.toArray(); //转换为一维数组

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

最后,结果转换为ArrayList<double[]> result

你可能感兴趣的:(java)