Java Matlab混合编程之返回值Struct类型
2013-09-09 18:51
253 查看
java matlab混合编程的时候当返回值是Struct类型(matlab中的返回类型)如何来取得(java中)其值?
上网找,看到这个网页:http://www.mathworks.cn/cn/help/matlab/matlab_external/passing-data-to-a-java-method.html ,上面说Struct类型不支持;如下图:
然后我就没办法了,但是获得的Object值应该是可以设置断点操作的吧,然后我就设置断点来看到到底是个什么值?如下图:
不过好像没有啥属性的,那怎么取得值呢?看到右边MWStructArray,这个类,这个是javabuilder.jar里面的,这个可能会有用,好吧,先把这个值取出来,转换为MWStructArray;如下代码:
看到有一个fieldNames()方法,试验了一下这个方法返回的是一个Struct对象的全部属性。很好,那么如何获得呢,在往下看,有一个get()方法,输入可以使int,int[]。再次试验,发现get(1)就是第一个属性,但是我想如果可以直接get(paraName)不是更好么,无奈,好像没有这个方法。不过可以使用一个map来映射,然后直接通过字符串来获得值也是可以的,如下;
分享,成长,快乐
转载请注明blog地址:http://blog.csdn.net/fansy1990
上网找,看到这个网页:http://www.mathworks.cn/cn/help/matlab/matlab_external/passing-data-to-a-java-method.html ,上面说Struct类型不支持;如下图:
然后我就没办法了,但是获得的Object值应该是可以设置断点操作的吧,然后我就设置断点来看到到底是个什么值?如下图:
不过好像没有啥属性的,那怎么取得值呢?看到右边MWStructArray,这个类,这个是javabuilder.jar里面的,这个可能会有用,好吧,先把这个值取出来,转换为MWStructArray;如下代码:
TestDemo td=new TestDemo(); Object[] result=td.testFun(6,data); MWStructArray msa=(MWStructArray)result[5];然后使用msa加一个点,来智能提示看它有哪些方法,如下:
看到有一个fieldNames()方法,试验了一下这个方法返回的是一个Struct对象的全部属性。很好,那么如何获得呢,在往下看,有一个get()方法,输入可以使int,int[]。再次试验,发现get(1)就是第一个属性,但是我想如果可以直接get(paraName)不是更好么,无奈,好像没有这个方法。不过可以使用一个map来映射,然后直接通过字符串来获得值也是可以的,如下;
MWStructArray msa=(MWStructArray)result[5]; Map<String,Integer> fieldsMap=new HashMap<String,Integer>(); String[] fields =msa.fieldNames(); for(int i=0;i<fields.length;i++){ // System.out.print(fields[i]+","); fieldsMap.put( fields[i],i); } System.out.println(); Object beta=msa.get(fieldsMap.get("beta")); MWNumericArray betaA=(MWNumericArray)beta;这样就可以取出Struct的属性值了,最后一行代码是把属性值进行转换,因为属性值是一个数组;
分享,成长,快乐
转载请注明blog地址:http://blog.csdn.net/fansy1990
相关文章推荐
- java matlab混合编程之返回值Struct类型
- Matlab与Java混合编程的教程
- Java与Matlab混合编程环境配置与实例分析
- java matlab混合编程之返回值Struct类型
- Matlab和java混合编程开发
- VC++与Matlab混合编程之引擎操作详解(4)数据类型mxArray的操作
- VC++与Matlab混合编程之引擎操作详解(3)数据类型mxArray的操作
- Matlab与Java混合编程
- VC++与Matlab混合编程之引擎操作详解(5)数据类型mxArray的操作
- VC++与Matlab混合编程之引擎操作详解(3)数据类型mxArray的操作
- VC++与Matlab混合编程之引擎操作详解(6)数据类型mxArray的操作
- 【原创】Matlab.NET混合编程技巧之找出Matlab内置函数
- 【MATLAB与C的混合编程】之【C程序调用Matlab计算引擎】(1)
- dwr 调用返回值类型为java.util.List 的方法
- Java中调用MatLab返回值
- C#与MATLAB混合编程实例
- java中对matlab中的函数类型转换
- 如何用Qt和Java代码进行混合编程(在Qt for Anroid环境下)
- VC++与Matlab混合编程之引擎操作详解
- java 判断返回值的类型