Java导入matlab的mat文件矩阵

要求:mat中文件应该是单一的矩阵或者向量,如果是多个矩阵存到mat中,使用matlab把原始文件load后分别存成多个单一矩阵的mat文件。

  1. 下载jar包
    使用ujmp中的jmatio模块读取.mat文件到java程序中。


    其实,ujmp主要是在模块core中实现了矩阵运算,其余模块都是复用了已有的开源库。模块jmatio是复用了已有的JMatIo,对这个读取mat文件到java程序的库做了一层封装。从ujmp的官网(https://ujmp.org/)下载ujmp的jar包,但是这一个jar包并不能读取mat文件(虽然jar包内有jmatio模块),还需要下载一个JMatIo的jar包(http://pan.baidu.com/s/1nuMMqvB)。将两个jar包都加入到工程中才可以从mat文件中顺利读取数据到java程序中。

  2. 添加jar包到工程:在当前的project中新建lib文件夹,将下载的jar包复制进来,使用eclipse的在package explorer下右键->properties->java build path->libraries->add external JARs->添加jar->apply->ok

  3. 创建File对象,指向所要读取的mat文件。
    File file = new File("mat file address"); //使用包和其中的类:import java.io.File

  4. 将mat中数据读入到一个矩阵类中:
    Mathix data = ImportMatrixMAT.fromFile(file); //使用包和其中的类:import org.ujmp.jmatio.ImportMatrixMAT;

  5. 对得到的矩阵进行操作。
    具体代码如下:

public static void main(String[] args) throws IOException {
    File file1 = new File("src/test/sampleData.mat");
    Matrix sampleData=ImportMatrixMAT.fromFile(file1);
    File file2 = new File("src/test/dataBase.mat");
    Matrix dataBase=ImportMatrixMAT.fromFile(file2);
    int dataBaseNumber =(int)dataBase.getColumnCount();  //矩阵的列数
    double[]spaceAngle = new double[dataBaseNumber];
    ......
}
  1. UJMP 矩阵库的基本用法见:
  • 官方文档
  • 官方文档中文翻译
  • java矩阵运算包ujmp中的一些小示例和注意事项

你可能感兴趣的:(Java导入matlab的mat文件矩阵)