簡體   English   中英

將MATLAB Javabuilder輸出對象元素轉換為數組

[英]Converting a MATLAB Javabuilder output object element to an array

我已經下達了使用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,這是數組的實際大小。 編輯-僅添加,我可以找到的所有示例僅輸出結果對象並顯示它,而不是對其執行任何操作。

好的,附近的軟件工程師來了。 這有點a回,但可以。

    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),但這會使數組變平,這不是理想的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM