天天看點

【原創】開源Math.NET基礎數學類庫使用(05)C#解析Delimited Formats資料格式

【原創】開源Math.NET基礎數學類庫使用(05)C#解析Delimited Formats資料格式

上一篇文章,我們介紹了使用C#讀寫Matlab的Mat資料格式和通用的Matrix Market資料格式。今天還要介紹一個Math.NET讀取Delimited Formats資料格式的例子。Delimited Formats(也稱DSV) 資料格式也是一種比較常見的資料存儲和交換格式,和CSV格式也有些類似。Delimited Formats是一個使用分隔符, 儲存二維矩陣資料的資料格式檔案。每一行資料都使用分隔符分割。很多資料庫和電子表格程式都支援該格式。可以參加維基百科的相關資料。

               本部落格所有文章分類的總目錄:【總目錄】本部落格博文總目錄-實時更新 

開源Math.NET基礎數學類庫使用總目錄:【目錄】開源Math.NET基礎數學類庫使用總目錄

前言

  上一篇文章,我們介紹了使用C#讀寫Matlab的Mat資料格式和通用的Matrix Market資料格式。今天還要介紹一個Math.NET讀取Delimited Formats資料格式的例子。Delimited Formats(也稱DSV) 資料格式也是一種比較常見的資料存儲和交換格式,和CSV格式也有些類似。

如果本文資源或者顯示有問題,請參考 本文原文位址:http://www.cnblogs.com/asxinyu/p/4268626.html

1.Delimited Formats格式介紹

  Delimited Formats是一個使用分隔符, 儲存二維矩陣資料的資料格式檔案。每一行資料都使用分隔符分割。很多資料庫和電子表格程式都支援該格式。可以參加維基百科的相關資料:

http://en.wikipedia.org/wiki/Delimiter-separated_values#Uses_and_applications

該格式的例子如下:

"Date","Pupil","Grade"
"25 May","Bloggs, Fred","C"
"25 May","Doe, Jane","B"
"15 July","Bloggs, Fred","A"
"15 April","Muniz, Alvin ""Hank""","A"      

2.C#讀取Delimited Formats格式檔案

  本文還是使用Math.NET提供的程式,隻不過對其結構和使用進行分析。C#讀取的傳回值的矩陣或者向量格式也都是Math.NET中的類型。C#讀取Delimited Formats檔案的主要類型是DelimitedReader,在MathNet.Numerics.Data.Text項目中,而其中的方法也都是靜态方法,由于Delimited Formats本省就是儲存二維矩陣的,所有該類也隻有讀取為Matrix矩陣類型的靜态方法,方法原型如下:

1 public static Matrix<T> Read<T>(TextReader reader, bool sparse = false, string delimiter = @"\s",
                    bool hasHeaders = false,IFormatProvider formatProvider = null, 
                    T? missingValue = null) where T : struct,IEquatable<T>, IFormattable
2 
3 public static Matrix<T> Read<T>(string filePath, bool sparse = false, string delimiter = @"\s", 
                    bool hasHeaders = false,IFormatProvider formatProvider=null,
                    T? missingValue = null)where T:struct,IEquatable<T>,IFormattable
4 
5 public static Matrix<T> Read<T>(Stream stream, bool sparse = false, string delimiter = @"\s",
                    bool hasHeaders = false,IFormatProvider formatProvider = null,
                    T? missingValue = null) where T:struct,IEquatable<T>, IFormattable      

3.C#儲存資料為Delimited Formats格式

C#矩陣檔案寫入Delimited Formats檔案的方法和上面的讀取類似,使用的是DelimitedWriter類的靜态方法,支援寫入矩陣和向量,方法原型如下:

1 public static void Write<T>(TextWriter writer, Matrix<T> matrix, string delimiter = "\t",
               IList<string> columnHeaders = null,string format=null,IFormatProvider formatProvider=null,
               T?missingValue=null) where T:struct,IEquatable<T>,IFormattable
2 
3 public static void Write<T>(string filePath, Matrix<T> matrix, string delimiter = "\t",
               IList<string> columnHeaders = null,string format=null,IFormatProvider formatProvider=null,
               T?missingValue=null) where T:struct,IEquatable<T>,IFormattable
4 
5 public static void Write<T>(Stream stream, Matrix<T> matrix, string delimiter = "\t", 
               IList<string> columnHeaders = null,string format=null,IFormatProvider formatProvider=null,
               T?missingValue=null) where T:struct,IEquatable<T>,IFormattable      

4.資源

  源碼下載下傳:參考官方網站

  如果本文資源或者顯示有問題,請參考 本文原文位址:http://www.cnblogs.com/asxinyu/p/4268626.html

.NET資料挖掘與機器學習,作者部落格:

http://www.cnblogs.com/asxinyu

E-mail:[email protected]

繼續閱讀