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

  • 相关阅读:
    asp.net 实现pdf、swf等文档的浏览
    VS NuGet加载本地程序包
    《大型网站技术架构》读书笔记
    全排列组合算法
    GDI+绘制半圆按钮
    oracle dblink 查询 tns:无法解析指定的连接标识符
    最少有多少鸡蛋(求最小公倍数)
    杨辉三角
    Android开发面试题(一)
    2015年11月系统架构设计师案例分析题
  • 原文地址:https://www.cnblogs.com/asxinyu/p/dotnet_Opensource_MathNet_Parse_Delimited_Formate_5.html
Copyright © 2011-2022 走看看