日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

java调用matlab 数组_JAVA调用matlab程序 输入输出数据转换

發布時間:2025/4/5 循环神经网络 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java调用matlab 数组_JAVA调用matlab程序 输入输出数据转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JAVA調用matlab程序 輸入輸出數據轉換

JAVA 程序調用 matlab函數(matlab導出jar包里的函數)、JAVA解析matlab返回數據時,機器需要先安裝matlab運行時環境 并 在java工程中導入運行時環境提供的javabuilder.jar用于數據類型的轉換。

java工程中導入從matlab導出的jar文件。

函數調用

a. 傳入函數的JAVA變量先轉換為運行時環境里的對象

例如:JAVA double對象轉 matlab double對象(傳入函數的實際是運行時環境提供的中間類型)

double params= 0.2d;

MWNumericArray p1 = new MWNumericArray(params, MWClassID.DOUBLE);

b. 函數調用

//封裝實參為函數接受的類型

Object[] inputs = new Object[5];

MWNumericArray p1 = new MWNumericArray(params, MWClassID.DOUBLE);

input[1]=p1;

····

//實例化matlab函數入口對象,調用函數

//傳入的第一個參數是指定函數返回值數量(必須嚴格和實際返回值數量一致),第二個參數開始是實參列表(本例中實參封裝為Object數組傳入)

//函數返回 在Object數組 result 中

ClassSimple simple= new ClassSimple();

Object[] result = simple.XXXX(5, inputs);

matlab函數返回數據解析

目前,項目使用到并成功實現轉換的數據類型有 元胞數組、雙精度型數據、字符型數據。 最小粒度的數據為雙精度型數據、字符型數據,經過元胞數組的封裝和嵌套 返回。轉換過程中,確認不能轉換的數據類型有 table、日期時間型、日期長度型、時間日期向量。

Object res1= result[0];

//先將數據類型強制類型轉換為MWCellArray

MWCellArray cellArray = (MWCellArray) res1;

//cellArray.numberOfElements() 獲取元胞數組中元素總個數

//MWCellArray 相當于把表格數據縱向一維展開, 每一列的數據是相連的 而封裝java對象要抽出一行的數據

//元素總個數除以列數(表具有的字段數)得到行數

int rowNum= cellArray.numberOfElements() / columnNum;

for (int i = 1; i <= rowNum; i++) {

Bean bean= new Bean();

//解析字符型數據

bean.setName(String.valueOf(((char[][]) cellArray.get(i))[0]));

//解析雙精度型數據

bean.setWeight(((double[][]) cellArray.get(rowNum+ i))[0][0]);

System.err.println(bean);

}

字符型數據的轉換

確認元胞數組 cellArray 的第i 個元素對應字符型數據(可以先輸出第i個元素的類名查看 字符型數據對應的Class的SimpleName為char[][])后,

通過

String.valueOf(((char[][]) cellArray.get(i))[0]);

轉換為String;

雙精度型數據的轉換

確認元胞數組cellArray 的第j 個元素對應雙精度型數據(對應SimpleName為double[][])后,

通過

((double[][]) cellArray.get(j))[0][0];

即可取出該位置的數據;

元胞數組嵌套時的數據轉換

確認元胞數組cellArray 的第k個元素為元胞數組類型(對應SimpleName為MWArray)后,

通過

MWArray array= cellArray.getCell(k);

即可取出該位置的元胞數組,再次解析即可,例如:

for (int j = 1; j <= array.numberOfElements(); j++) {

String.valueOf(((char[][]) array.get(j))[0]);

}

注意事項:

1. 運行時環境里的元胞數組 **下標從1開始** 下標為0 報錯;

2. MWCellArray 相當于把表格數據縱向一維展開, 每一列的數據是相連的 而封裝java對象要抽出一行的數據;

3. 成功實現轉換的數據類型有 元胞數組、雙精度型數據、字符型數據; 確認不能轉換的數據類型有 table、日期時間型、日期長度型、時間日期向量;

4. 從元胞數組中獲取元胞數組是使用cellArray.getCell(),使用cellArray.get()有時候報錯。

總結

以上是生活随笔為你收集整理的java调用matlab 数组_JAVA调用matlab程序 输入输出数据转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。