我正在使用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


有什么想法可以将阵列打印到控制台吗?

最佳答案

改变您的访问方式

MLArray详细信息:
http://intra.csb.ethz.ch/javadoc/metabolic/com/jmatio/io/MatFileReader.html#getMLArray(java.lang.String)

还要检查一下mlarray的实现方式,然后得出访问方法:
http://intra.csb.ethz.ch/javadoc/metabolic/src-html/com/jmatio/types/MLArray.html#line.306

07-25 21:38