Java矩陣庫—jblas、ujmp、jmatio的相互轉化


1)首先使用jmatio(v0.2)從.mat文件讀取數據到內存中,並將其轉化為二維數組的形式。

import com.jmatio.io.MatFileReader;
import com.jmatio.types.MLArray;
import com.jmatio.types.MLDouble;
 MatFileReader read = new MatFileReader("data/totalDataSet.mat");
MLArray mlArray=read.getMLArray("img");//mat存儲的就是img矩陣變量的內容
MLDouble d=(MLDouble)mlArray;
double[][] matrix=(d.getArray());//只有jmatio v0.2版本中才有d.getArray方法

2)ujmp的矩陣可視化功能很棒,將二維數組matrix轉化為ujmp下的Matrix只需要一行代碼:

import org.ujmp.core.Matrix;
Matrix X=Matrix.Factory.importFromArray(matrix);//將二維數組轉化為矩陣
X.showGUI();

3)相對於jama、ujmp,jblas的矩陣運算速度是很快的,可以將ujmp下的Matrix轉化為jblas下的矩陣變量:

 float[][] array=X.toFloatArray();//ujmp下的Matrix轉化為二維數組
FloatMatrix jblasMatrix=new Float(array);

當然,也可以將jblas下的Matrix轉化為ujmp下的matrix,中間接口就是二維數組。

4)

jmatio v0.2的文檔http://www.mathworks.com/matlabcentral/mlc-downloads/downloads/submissions/10759/versions/1/previews/doc/overview-summary.html

jblas的官網和文檔:

官網:http://jblas.org/

文檔:http://jblas.org/javadoc/index.html

ujmp官網:https://ujmp.org/

Jama:

http://math.nist.gov/javanumerics/jama/doc/

5)最后附上java各科學計算庫的評測,其實java矩陣計算的性能不太好。

http://lessthanoptimal.github.io/Java-Matrix-Benchmark/runtime/2013_10_Corei7v2600/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM