Я использую jmatio для чтения в массиве 10000x3072 из файла Matlab (набор данных CIFAR10).
Вот что я имею до сих пор:
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 для MLDouble, а затем использовать метод getArray(), который даст вам двойной [] []
MatFileReader matfilereader = new MatFileReader("test_batch.mat");
double[][] mlArrayDouble = ((MLDouble) matfilereader.getMLArray("data")).getArray();
изменить свой способ доступа
Подробности 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
mlarrayretrieve.toString()
вместо contentToString, это дает ошибку более 1000 элементов? И, пожалуйста, опубликуйте фактический вывод, который вы получите на своей консоли (ошибки, включая трассировку стека и номера строк и т. Д.)