zoukankan      html  css  js  c++  java
  • 【原创】开源Math.NET基础数学类库使用(05)C#解析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 = "	",
                   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 = " ",
                   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 = " ",
                   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

  • 相关阅读:
    我的知识库(4) java获取页面编码(Z)
    知识库(3)JAVA 正则表达式 (超详细)
    The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the associated filter. Struts
    某人总结的《英语听力的技巧 》,挺搞的
    我的知识库(5)java单例模式详解
    构建可扩展程序
    SerialPort (RS232 Serial COM Port) in C# .NET
    Python学习笔记——String、Sequences
    UI题目我的答案
    jQuery学习系列学会操纵Form表单元素(1)
  • 原文地址:https://www.cnblogs.com/asxinyu/p/dotnet_Opensource_MathNet_Parse_Delimited_Formate_5.html
Copyright © 2011-2022 走看看