C# 使用MathNet.Numerics 导出mat格式(Matlab矩阵)文件

零 准备工作

0 创建C#客户端程序,完成从底层或数据库中读取大量数据的程序,将数据放入内存集合中;

1 NuGet包管理中下载组件 Math.NET Numerics 及其子模块 MathNet.Numerics.Data.Matlab (详情点击链接查看官方文档);

 

一 开始编码

0 引用所需模块

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

1 创建二维数组,将数组放入到矩阵中

int lstIndex = 0;
//_listData 内存数据
var arr=new double[_listData.Count,4099];
foreach (var dto in _listData)
{
    for (var i = 0; i < 4099; i++)
    {
        arr[lstIndex, i] = BitConverter.ToInt32(dto.Data, i * 4);
    }
    lstIndex++;
}
Matrix m = DenseMatrix.OfArray(arr);

//注意,完成此操作后,如果要解决内存占用问题,可以提前释放_listData和arr的内存占用

2 导出文件

using (FileStream fs = new FileStream($"{filePath}\\{fileName}.mat", FileMode.Create))
{                        
    //特别注意保存文件时的内存占用问题
    MatlabWriter.Write(fs, m,"export");                        
};

 

你可能感兴趣的:(C#,matlab,c#,矩阵)