将Matlab中的数据读入Java

将Matlab中的数据读入Java,java,matlab,Java,Matlab,我试图将Matlab中生成的矩阵读入java中的2D数组。 到目前为止,我一直在使用java将文件写入.mat文件(成功),但现在无法实现相反的目的。 我使用以下代码成功地将矩阵导入到MLArray对象中: matfilereader = new MatFileReader("filename.mat"); MLArray j = matfilereader.getMLArray("dataname"); 但是除了得到它的字符串表示,我无法访问数据本身。我没有找到这方面的示例或库本身的文档,实

我试图将Matlab中生成的矩阵读入java中的2D数组。 到目前为止,我一直在使用java将文件写入.mat文件(成功),但现在无法实现相反的目的。 我使用以下代码成功地将矩阵导入到MLArray对象中:

matfilereader = new MatFileReader("filename.mat");
MLArray j = matfilereader.getMLArray("dataname");
但是除了得到它的字符串表示,我无法访问数据本身。我没有找到这方面的示例或库本身的文档,实际上我编写了一个函数来将intire字符串解析为一个双[][]数组,但只有当矩阵小于1000项时,这才是好的

如果您有任何经验或建议, 谢谢


阿米尔

我不熟悉这个工具,但它很旧。尝试保存到较旧版本的
*.mat
文件,查看结果是否有变化。也就是说,在保存r*.mat文件时添加
'-v7.0'
'-v6'
标志

示例代码:

save filename var1 var2 -v7.0

具有多个子类来访问MLArray对象中不同类型的数据

要表示双数组,可以将MLArray强制转换为MLDouble:

MLDouble j = (MLDouble)matfilereader.getMLArray("dataname");

您是否尝试过使用MLDouble子类而不是MLArray?您是否在MATLAB中检查了mat文件是否正确保存?您是如何使用MLDouble而不是MLArray的?MatfileReader只有一个将变量作为MLArray返回的API。关于这个文件-是的,iv'e尝试了几个,他们都很好。我的意思是将MLArray转换成MLDouble。你能试试
MLDouble j=(MLDouble)matfilereader.getMLArray(“dataname”)?是的,行了!然后,您可以通过协调访问所有单元格,甚至有一个内置函数“.createArray”。非常感谢你,我现在也试过了,效果也一样。但这不是我得到的错误或与文件相关的东西,问题是使用哪个代码将MLArray转换为java变量?
MLDouble j = (MLDouble)matfilereader.getMLArray("dataname");