一.CSMatIO介绍
CSMatIO 是一个用于读写 MATLAB .mat 文件的开源 C# 库,它提供了简单而高效的 API,使 .NET 应用程序能够与 MATLAB 进行数据交换,支持读取和写入 MATLAB 的 .mat 文件(版本 5 和 7.3),兼容 MATLAB 数据类型:矩阵、结构体、单元数组、字符数组等,不依赖 MATLAB Runtime,适合独立应用程序。
二.CSMatIO安装
1.通过NuGet包管理器引用(主流方式)
右键点击项目 → 选择“管理 NuGet 程序包”→ 进入NuGet界面,搜索并安装包,
在“浏览”选项卡输入包名(如 Newtonsof.json ) → 选择版本 一 点击“安装”自动下载依赖项。
验证安装
安装成功后,包会自动添加到项目引用中,代码可通过 using 语句引入命名空间。
2.引用外部DLL文件(常用)
右键项目“引用“或“依赖项”→ 选择“添加引用”→ 切换到“浏览”选项卡 → 选择DLL文件 → 点击“确定”.
说明:一般把dll放置到本项目新建的lib目录下。
版本兼容性检查:需确保DLL的.NET版本与当前项目兼容.
3.添加项目引用(同一解决方案内)
确保项目在同一解决方案
在解决方案资源管理器中确认需引用的类库项目存在.
添加引用
右键目标项目的“依赖项”或“引用”→ 选择“添加项目引用” 一 勾选目标项目 一 点击“确定”。
代码引用
在代码中通过 using 语句引入目标项目的命名空间即可调用其类型。
4.命令行安装
在 Visual Studio 中依次点击 工具 > NuGet 包管理器 > 程序包管理器控制台,输入以下命令并回车:
运行命令:Install-Package CSMatIO -Version 1.0.20
https://www.nuget.org/packages/csmatio#supportedframeworks-body-tab
三.代码测试
1.生成.mat文件
using csmatio.io;
using csmatio.types;
class MatFileCreator
{
static void Main()
{
//创建二维矩阵
double[][] data1 = new double[1][];
data1[0] = new double[] { 100.0, 101.0, 102.0 }; // first row
MLDouble mlDoubleArray = new MLDouble("Matrix_1", data1); //创建二维矩阵变量
List<MLArray> mlList = new List<MLArray>();
mlList.Add(mlDoubleArray);
MatFileWriter mfw = new MatFileWriter("data1.mat", mlList, false);
}
}
2. 读取二维数据
// create a reader for the file
MatFileReader mfr = new MatFileReader("test22.mat");
// get a reference to our matlab 'squares' double matrix
MLSingle mlSquares = (mfr.Content["w1"] as MLSingle);
Single[] squares;
if (mlSquares != null)
{
// now get the double values
Single[][] tmp = mlSquares.GetArray();
squares = tmp[0];
}
3.官方参考demo网址
https://sourceforge.net/p/csmatio/wiki/Usage%20Examples/