Matlab 软件 20GB,很大,还有卡脖子的问题。
我们可以利用其生成的 Mat 文件做更多的事。
MAT 文件版本概述
MAT 文件是二进制 MATLAB® 文件,用于存储工作区变量。从 MAT 文件版本 4 开始,随后的几个 MAT 文件版本都支持一组增加的功能。MATLAB 版本 R2006b 和更高版本均支持所有的 MAT 文件版本。
默认情况下,所有保存操作都会创建 7 版本的 MAT 文件。唯一的例外是使用 matfile 函数创建新的 MAT 文件时。在这种情况下,默认的 MAT 文件版本是 7.3。
要确定或更改默认 MAT 文件版本,请访问 MAT 文件预设。
预设适用于 save 函数和保存菜单选项。
MAT 文件的最大大小由您的本机文件系统限定。
下表列出并比较了所有 MAT 文件版本。
以上文字与图片来自于 Matlab:
https://ww2.mathworks.cn/help/matlab/import_export/mat-file-versions.htmlhttps://ww2.mathworks.cn/help/matlab/import_export/mat-file-versions.html
MATLAB Level-5 Mat Files
The MatlabReader class provides static functions to list all matrices stored in a MAT file or stream,
and to read them individually as Math.NET matrices:
using MathNet.Numerics.LinearAlgebra;
using MathNet.Numerics.Data.Matlab;
// read the first matrix as double
Matrix
// read a specific matrix named "vd":
Matrix
// we can also choose to convert to a different type:
Matrix
Alternatively the reader can list all matrices of a file into named data elements,
which can then be read into matrices individually.
This is useful e.g. if we need to read some of the matrices to a different type:
List
Matrix
Matrix
进入 管理 NuGet 程序包
从 NuGet 安装 MathNet.Numerics 和 MathNet.Numerics.Data.Matlab
Visual Studio 自动配置了相应的 DLL 文件。
读取矩阵(当然可能是数组)数据之后,怎么使用呢?
先添加相应的 namespace
using MathNet;
using MathNet.Numerics;
using MathNet.Numerics.Data;
using MathNet.Numerics.LinearAlgebra;
using MathNet.Numerics.Data.Matlab;
实际读取数据的代码:
// 读取三角形信息
Matrix
Array nod = m3.ToArray();
效果:
Writing matrices to a MATLAB file
MATLAB Level-5 Mat Files
The dual to the reader above is the MatlabWriter class that can serialize matrices to a MATLAB file or stream. Like the reader, the writer can use MatlabMatrix data elements to compose packed matrices into a file. Each matrix has a name which must not contain spaces.
var matrices = new List
m.Add(MatlabWriter.Pack(myFirstMatrix, "m1");
m.Add(MatlabWriter.Pack(mySecondMatrix, "m2");
MatlabWrier.Store("file.mat", matrices);
But there are also direct routines if only a single matrix or matrices of all the same data type are to be stored in a file:
// write a single matrix "myMatrix" and name it "m1".
//写入单个的"myMatrix"矩阵,并命名为"m1".
MatlabWriter.Write("file.mat", myMatrix, "m1");
// write multiple matrices, from a list of matrices and a list of their names:
//写入多个矩阵,注意 矩阵列表 和 名称列表
MatlabWriter.Write("file.mat", new[] { m1, m2 }, new[] { "m1", "m2" });
// write a dictionary of matrices:
//写入字典矩阵,和读取的原理类似
var dict = new Dictionary
dict.Add("m1", m1);
dict.Add("m2", m2);
MatlabWriter.Write("file.mat", dict);
你可以与联高软件一起用 Mat 文件做更多的事。