java - 将 MATLAB Javabuilder 输出对象元素转换为数组

标签 java arrays matlab object javabuilders

我收到了使用 MATLAB Builder 将 MATLAB 函数转换为 Java 类的任务,现在我已经将一个类的结果输入到另一个类中,并且由于 MATLAB 生成器只会输出一个对象,因此我遇到了问题。

import java.util.*;

import com.mathworks.toolbox.javabuilder.*;

public class mainKrigTau {

public static void main(String[] args) {

    Object[] resultT = null;
    Object[] resultK = null;
    Object[] resultB = null;
    krigingTau Tau = null;
    krigingTau Krig = null;
    Branin branin = null;

    try {

        Tau = new krigingTau();
        Krig = new krigingTau();
        branin = new Branin();
        resultT = Tau.LPtau(1, 100, 2, 1234);
        List<Object> X = Arrays.asList(resultT[0]);
        System.out.println(X);
        System.out.println((X.size()));


    } catch (MWException e) 
            {
        e.printStackTrace();
    } finally 
            {
    }

所以基本上 Tau 类的输出是一个 2D 数组,因此该数组嵌入到 resultT[] 对象中,如何访问该数组?我尝试过的一种方法是如上,将其更改为数组列表,X输出数组,但我无法访问数组的组件。 X.size = 1,而不是数组的实际大小 100。编辑 - 只是添加,我能找到的所有示例都只是输出结果对象并显示它,而不是对其执行任何操作。

最佳答案

好吧,附近的一位软件工程师来救援了。这有点迂回,但确实有效。

    try {

        Tau = new krigingTau();
        Krig = new krigingTau();
        branin = new Branin();

        resultT = Tau.LPtau(1, 100, 2, 1234);
        List<Object> X = Arrays.asList(resultT[0]);         

        if (X.get(0) instanceof MWNumericArray) {

            MWNumericArray mw= (MWNumericArray) X.get(0);
            ArrayList<Point> lists = new ArrayList<Point>();
            for(int i = 1; i <= mw.numberOfElements()/2; i++){
                Object o = mw.get(i);
                System.out.println(o);
                Double x = (Double) mw.get(i);
                Double y = (Double) mw.get((mw.numberOfElements()/2)+i);
                Point p = new Point(x.doubleValue(),y.doubleValue());
                lists.add(p);
            }

            for(int i = 1; i < mw.numberOfElements()/2; i++)
            {

                resultB = branin.branin(1, lists.get(i).array);
                System.out.println(resultB[0]);
            }

其中 point 将 x 和 y 的值设置为一个数组,因此将其设置为一个新的 MWNumericArray 并执行 Object.get(i),但这会使数组变平,这并不理想。

关于java - 将 MATLAB Javabuilder 输出对象元素转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23995238/

相关文章:

java - LWJGL:打开窗口导致程序崩溃

image-processing - 使用 MATLAB 对图像进行边界框

Bash,参数列表段

java - 安卓java : foreach through json array returning values?

matlab - 在matlab中使用FFT去除图像中的图案和噪声

python - 使用OpenCV与Matlab评估校准结果

Java GUI 将按钮移动到页面底部

java - 如何避免 Spring 中的 applicationContext.getBean ?

java - 8 月 31 日星期五的日期格式异常 :00:00 CAT 2012

java - 多重矩形生成