如何加载/打开/读取 java 中的 matlab 文件 *.mat?
How can I load / open / read a matlab file *.mat in java?
到目前为止我的代码(基于 this entry)但它不起作用:
MatFileReader matfilereader = new MatFileReader("C:\data\Freebase\initEmbed.mat");
System.out.println(matfilereader.getData().get(0) + "name: "+matfilereader.getMLArray("words").getSize());
System.out.println("new "+matfilereader.getMLArray("words"));
MLArray words = matfilereader.getMLArray("words");
System.out.println(words.contentToString().substring(0, 100));
MLChar j = (MLChar) matfilereader.getMLArray("words");
我的输出:
[1x91898 cell array]name: 91898
new [1x91898 cell array]
words =
[1x9 char array] [1x3 char array] [1x1 char array] [1x1 char array] [1x2 char array]
Exception in thread "main" java.lang.ClassCastException: com.jmatio.types.MLCell cannot be cast to com.jmatio.types.MLChar
at NTN.Run_NTN.main(Run_NTN.java:91)
如何将这个matlab文件的单词加载到java数组中?
我对 matLab 一无所知,但异常情况似乎很清楚。您正在将 MLCell
转换为 MLChar
。 “getMLArray
”必须返回 MLCell
。我会先转换为 MLCell
MLCell mlCell = (MLCell) matfilereader.getMLArray("words");
然后使用该类型可用的任何方法来获取 MLChar
。
到目前为止我的代码(基于 this entry)但它不起作用:
MatFileReader matfilereader = new MatFileReader("C:\data\Freebase\initEmbed.mat");
System.out.println(matfilereader.getData().get(0) + "name: "+matfilereader.getMLArray("words").getSize());
System.out.println("new "+matfilereader.getMLArray("words"));
MLArray words = matfilereader.getMLArray("words");
System.out.println(words.contentToString().substring(0, 100));
MLChar j = (MLChar) matfilereader.getMLArray("words");
我的输出:
[1x91898 cell array]name: 91898
new [1x91898 cell array]
words =
[1x9 char array] [1x3 char array] [1x1 char array] [1x1 char array] [1x2 char array]
Exception in thread "main" java.lang.ClassCastException: com.jmatio.types.MLCell cannot be cast to com.jmatio.types.MLChar
at NTN.Run_NTN.main(Run_NTN.java:91)
如何将这个matlab文件的单词加载到java数组中?
我对 matLab 一无所知,但异常情况似乎很清楚。您正在将 MLCell
转换为 MLChar
。 “getMLArray
”必须返回 MLCell
。我会先转换为 MLCell
MLCell mlCell = (MLCell) matfilereader.getMLArray("words");
然后使用该类型可用的任何方法来获取 MLChar
。