我正在使用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
如何将数组打印到控制台?
答案 0 :(得分:0)
改变您的访问方式
检查这个mlarray是如何实现的,然后派生你的访问方法: http://intra.csb.ethz.ch/javadoc/metabolic/src-html/com/jmatio/types/MLArray.html#line.306
答案 1 :(得分:0)
你可以将MLArray转换为MLDouble,然后使用getArray()方法,它会给你一个double [] []
MatFileReader matfilereader = new MatFileReader("test_batch.mat");
double[][] mlArrayDouble = ((MLDouble) matfilereader.getMLArray("data")).getArray();