C# 使用Math.NET读取mat格式文件内容

一、前序知识

1、mat格式

Mat文件格式,实际上使用的是一种通用的数值数据存储格式Hierarchical Data Format(HDF),该格式最先是由美国国家超级计算应用中心开发的,后来由HDF非盈利组织资助。LabVIEW,MATLAB,Scilab,Octave,Mathematica等都支持该格式,该格式目前主要有HDF4和HDF5。

2、Mat数据格式读写的组件是MathNet.Numerics.Data.Matlab,Mat数据格式的读取主要用MatlabReader类

二、正确引用

MathNet.Numerics.Data.Matlab

安照之前从网上直接找MathNet.Numerics.dll文件,然后再引用

using MathNet.Numerics.LinearAlgebra;
using MathNet.Numerics.Data.Matlab;

会出现 缺少MathNet.Numerics.Data.Matlab错误

正确方法:通过安装.nupkg文件来正确引用

注意要使用VS较高版本的,本人使用VS2017

1、准备两个库文件

 下载地址

下载地址下载地址

注意:MathNet.Numerics.Data.Matlab的版本不要太高,笔者使用4.0的版本 ,出现在vs2017下无法安装的情况。

2、VS里面安装NuGet管理器

即要安装工具箱里的如下应用,如果已经安装过,则跳过这一步

(1)点击工具-扩展和更新

 

 (2)搜索并安装NuGet Package Project 

 3、打开一个工程

需要先添加一个程序包源,即添加自己下载的.nupkg文件存放的路径

工具-选项

 4、回到NuGet解决方案,安装.nupkg

此时会在自己设置的路径下生成两个dll文件

之后可以正常引用了。

三、读取mat格式文件内容

//从collection.mat文件中,读取第一个double矩阵
 Matrix<double> m = MatlabReader.Read<double>("collection.mat");

 


版权声明:本文为kenjianqi1647原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。