在C#中导入/读取/加载Matlab mat文件中的变量

8

我已经搜索了一段时间,看看是否有人在CSharp中读取Matlab mat文件的工作,并且似乎没有任何结果。

有人见过解决方案吗?

我不能简单地将我的mat文件导出为文本,然后将它们读入我的C#代码,因为这些文件包含相当复杂的结构。

我不想与Matlab互操作,也不想使用Python(带有loadmat的SciPy)。

4个回答

6

有一个尝试的选项是使用CSMatIO,由David ZierMathWorks文件交换中心上提供。它是一个.NET 2.0的API,可以让您读取5级.mat文件。

如果您必须读取更新的.mat文件格式,则可以先将.mat文件加载到MATLAB中,然后使用version选项重新保存为旧格式,使用SAVE函数。


1
另外,您可以使用HD5阅读器从新的.mat文件中获取数据,尽管您可能需要付出一些努力。 - Jonas
我刚试了David Zier的库,它们对我有用,尽管它们不容易使用,需要很多调整才能将我的复杂结构输出,但它们是目前最好的选择。谢谢。 - Ali

2
ILNumerics 能够读取和写入 Matlab mat 文件,版本为 6。

2

由于 CSMatIO 似乎不受支持,我想分享一个类似的库用于读写 MATLAB .mat 文件:MatFileHandler,它针对 .NET Standard 2.0。


1

我想再提供一个替代方案。Accord.Math库(可以通过Nuget获取,或者在这里下载:http://accord-framework.net/)提供了一个.mat文件阅读器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接