一.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/