使用jmatio读写matlab数据文件

/**
 * Created by hfz on 2016/2/23.
 */

import com.jmatio.io.*;
import com.jmatio.types.MLDouble;

import java.io.IOException;
import java.util.ArrayList;

public class matWriterTest {
    public static void main(String[] args) throws IOException {

        double[][] matTest=new double[][]{{1,2,3,4},{5,6,76,34}};//生成待存储的矩阵
        MLDouble mlDouble=new MLDouble("doubleArray",matTest);//doubleArray就是matlab中上述矩阵的标示符,load()之后,在matlab中使用doubleArray访问此矩阵
        ArrayList list=new ArrayList();//由于MatFileWriter()构造函数的参数为list类型,所以需要创建一个ArrayList
        list.add(mlDouble);
        new MatFileWriter("matTest.mat",list);//将矩阵写入到.mat文件中,文件名为matTest.mat
        System.out.println("mat writer done!");
    }
}

 还有MLInt64、MLINt32等整型类型。

http://www.mathworks.com/matlabcentral/mlc-downloads/downloads/submissions/10759/versions/1/previews/doc/com/jmatio/types/package-summary.html

2)以上是写.mat文件,下面是读.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方法

 3)读取一个向量(数组)代码如下:

      MatFileReader read = new MatFileReader("data/predLab.mat");
        MLArray mlArray=read.getMLArray("predLab");//mat存储的就是img矩阵变量的内容
        MLInt64 d=(MLInt64)mlArray;
        int[] ma=d.getDimensions();//获得向量
        //int[] matrix=(d.getArray());//只有jmatio v0.2版本中才有d.getArray方法

 

posted @ 2016-02-23 16:45  lz3018  阅读(1536)  评论(0编辑  收藏  举报