使用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等整型类型。
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方法