Java Matlab混合编程之返回值Struct类型

Java matlab混合编程的时候当返回值是Struct类型(matlab中的返回类型)如何来取得(java中)其值?

上网找,看到这个网页: ,上面说Struct类型不支持;如下图:

Java Matlab混合编程之返回值Struct类型

然后我就没办法了,但是获得的Object值应该是可以设置断点操作的吧,然后我就设置断点来看到到底是个什么值?如下图:

Java Matlab混合编程之返回值Struct类型

不过好像没有啥属性的,那怎么取得值呢?看到右边MWStructArray,这个类,这个是javabuilder.jar里面的,这个可能会有用,好吧,先把这个值取出来,转换为MWStructArray;如下代码:

[java] view plaincopyprint?TestDemo td=new TestDemo(); 
Object[] result=td.testFun(6,data); 
MWStructArray msa=(MWStructArray)result[5]; 

TestDemo td=new TestDemo();
Object[] result=td.testFun(6,data);
MWStructArray msa=(MWStructArray)result[5];

然后使用msa加一个点,来智能提示看它有哪些方法,如下:

Java Matlab混合编程之返回值Struct类型

看到有一个fieldNames()方法,试验了一下这个方法返回的是一个Struct对象的全部属性。很好,那么如何获得呢,在往下看,有一个get()方法,输入可以使int,int[]。再次试验,发现get(1)就是第一个属性,但是我想如果可以直接get(paraName)不是更好么,无奈,好像没有这个方法。不过可以使用一个map来映射,然后直接通过字符串来获得值也是可以的,如下;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/efc4447b35a732626b19379e32fce759.html