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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android:JAVA使用HDF5存储

發布時間:2023/12/31 Android 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android:JAVA使用HDF5存储 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

????????Hierarchical Data Format,可以存儲不同類型的圖像和數碼數據的文件格式,并且可以在不同類型的機器上傳輸,同時還有統一處理這種文件格式的函數庫。大多數普通計算機都支持這種文件格式。 HDF是用于存儲和分發科學數據的一種自我描述、多對象文件格式。HDF是由美國國家超級計算應用中心(NCSA)創建的,以滿足不同群體的科學家在不同工程項目領域之需要。

??????? 關于HDF5的介紹,請查看HDF5的官方頁面。和參考此文:科學存儲數據格式-HDF5????????????

???? ?? 此外,HDF5提供了JAVA接口,下面是java使用HDF5的一些注意事項和相關代碼。


1.Eclipse配置

??????? 到hdf5的安裝文件夾下面,把jarhdf5.jar, slf4j-api.jar,slf4j-simple.jar 添加到功能lib目錄,同時把hdf5_java.dll文件添加到一個目錄X。注意,在此過程中,添加且只添加這三個文件,第四個slf4j-nop-1.7.5.jar暫時不使用。

???
??? HDF5為C++ native的第三方庫,按照引入庫的一般步驟加入Eclipse工程。windows->preference->java->userLIbraries->new。自行添加庫的名字。我的名字是HDF5。

??????? 然后在新建的用戶庫里面,Add JARS,添加jarhdf5.jar, slf4j-api.jar,slf4j-simple.jar三個文件,并在jarhdf5.jar下面配置Native library location,鏈接到X目錄,用以調用Native動態庫hdf5_java.dll。

??????? 然后在工程的源碼文件中,引入hdf5的包。

?例如:

import hdf.hdf5lib.H5; import hdf.hdf5lib.HDF5Constants;
2.讀取HDF5文件

??????? 初次使用,使用了C++寫入的文件,測試讀取,可運行代碼如下:

public static void main(String[] args) {String fname = "D:/dataSet/RecoSys/JavaTest/HDF5DatasetRead.h5";// private staticString dsname = e = "training_data";try {// create the HDF5 file and add groups and dataset into the file//save_to_file(fname, dsname, dims2D);} catch (Exception ex) {ex.printStackTrace();}// 測試讀出try {load_from_file(fname, dsname);} catch (Exception ex) {ex.printStackTrace();} }

load函數:

public static int load_from_file(String fname, String dsname) throws Exception {//讀取先后使用了fileID,SpaceID,DatasetIDlong file_id = -1;long space_id = -1;long dataset_id = -1;// Open file using the default properties.try {file_id = H5.H5Fopen(fname, HDF5Constants.H5F_ACC_RDWR, HDF5Constants.H5P_DEFAULT);} catch (Exception e) {e.printStackTrace();}// Open dataset using the default properties.try {if (file_id >= 0)dataset_id = H5.H5Dopen(file_id, dsname, HDF5Constants.H5P_DEFAULT);} catch (Exception e) {e.printStackTrace();}// Allocate array of pointers to two-dimensional arrays (theelements of the dataset.int l = 20;int w =20;long[] dims = {0,0};long[] dims2 = {0,0};//獲取space_id = H5.H5Dget_space(dataset_id);H5.H5Sget_simple_extent_dims(space_id,dims,dims2);l= (int)dims[0];w= (int)dims[1];int[][] dataRead = new int[l][w];try {if (dataset_id >= 0)H5.H5Dread(dataset_id, HDF5Constants.H5T_NATIVE_INT, HDF5Constants.H5S_ALL, HDF5Constants.H5S_ALL,HDF5Constants.H5P_DEFAULT, dataRead);} catch (Exception e) {e.printStackTrace();}// print out the data valuesSystem.out.println("\n\nOriginal Data Values");for (int i = 0; i < l; i++) {System.out.print("\n" + dataRead[i][0]);for (int j = 1; j < w; j++) {System.out.print(", " + dataRead[i][j]);}} }實現把數據讀取到dataRead中。

3.保存HDF5文件

..............待完成..................




???????

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Android:JAVA使用HDF5存储的全部內容,希望文章能夠幫你解決所遇到的問題。

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