java - 如何在 java 中加载/打开/读取 matlab 文件 *.mat?

标签 java matlab opencv mat mat-file

到目前为止我的代码(基于 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

关于java - 如何在 java 中加载/打开/读取 matlab 文件 *.mat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29749226/

相关文章:

opencv - 如何判断单应矩阵是否可接受?

java - 如何从字符串中提取未知名称

java - 正则表达式匹配双空格之后、逗号之前

c# - C# 的 Matlab exprnd(a,b,c) 模拟?

arrays - 如何将函数应用于数组/向量的各个元素

c++ - OpenCV - 如何使用 alpha channel 检测标记

c++ - 如何从docker中的程序记录主机桌面(ubuntu中的c++ opencv)?

Java高效迭代char

java - Spring计划的cron在3 :00 to 6:30之间

Matlab: "Error using assignin: Attempt to add "c"to a static workspace"