从Java读取.mat文件

时间:2014-04-23 01:10:56

标签: java arrays matlab image-processing multidimensional-array

我正在使用jmatio从Matlab文件(CIFAR10数据集)中读取10000x3072数组。

这是我到目前为止所做的:

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

public class Driver {

   public static void main(String[] args) throws FileNotFoundException, IOException {

    MatFileReader matfilereader = new MatFileReader("test_batch.mat");
    MLArray mlArrayRetrieved = matfilereader.getMLArray("data");
    System.out.println(mlArrayRetrieved);
    System.out.println(mlArrayRetrieved.contentToString());
  }
}

这是我的输出:

data =无法显示超过1000个元素的变量。

我尝试迭代MLArray,但是我收到以下错误:

Can only iterate over an array or an instance of java.lang.Iterable

如何将数组打印到控制台?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

你可以将MLArray转换为MLDouble,然后使用getArray()方法,它会给你一个double [] []

MatFileReader matfilereader = new MatFileReader("test_batch.mat");
double[][] mlArrayDouble = ((MLDouble) matfilereader.getMLArray("data")).getArray();