【原创】开源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 = "\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

相关文章
|
1月前
|
机器学习/深度学习 人工智能 Rust
Grok-1:史上最大开源LLM的技术解析
Grok-1:史上最大开源LLM的技术解析
1254 1
|
2月前
|
自然语言处理 C# Windows
C#开源免费的Windows右键菜单管理工具
C#开源免费的Windows右键菜单管理工具
|
3月前
|
Linux C# 开发工具
C#开源的一款友好的.NET SDK管理器
C#开源的一款友好的.NET SDK管理器
|
1天前
|
SQL druid Java
Javaweb之数据库连接池以及lombok类库的详细解析
Javaweb之数据库连接池以及lombok类库的详细解析
9 0
|
1月前
|
算法 安全 C#
C#版开源免费的Bouncy Castle密码库
C#版开源免费的Bouncy Castle密码库
|
1月前
|
XML 数据格式
AXios接受XML格式的webservice并解析成数据格式
AXios接受XML格式的webservice并解析成数据格式
25 2
|
2月前
|
Java API Spring
开源!一款基于Spring Boot的二维码生成和解析工具
开源!一款基于Spring Boot的二维码生成和解析工具
39 1
|
2月前
|
Java
Java 数学运算与条件语句全解析
Java 的 Math 类 拥有许多方法,允许您在数字上执行数学任务。 常用方法: Math.max(x, y): 找到 x 和 y 的最大值 Math.min(x, y): 找到 x 和 y 的最小值 Math.sqrt(x): 返回 x 的平方根 Math.abs(x): 返回 x 的绝对值 Math.random(): 返回一个介于 0.0 和 1.0 之间的随机数
47 1
|
3月前
|
JSON fastjson 数据库
字符编码导致Rapidjson(腾讯开源的json解析库)到Fastjson(阿里开发的Java json解析库)转换失败的原因分析
最近在客户端的开发的过程中,使用到了RapidJson,公司的开发是客户端和数据库端都由不同的人进行开发,我负责的客户端的逻辑开发(使用c++),开发工具同时使用了VS2017和QT的编译环境,使用QT主要是为了客户端界面开发方便,而使用了VS环境主要是维护公司开发的数据库接口库,这个库的唯一作用就是作为一个中间桥梁,使用Rapidjson将数据库接口的json数据格式解析为结构体数据,从而在客户端界面进行展示,或者接收客户端的数据,使用Rapidjson将其转换为json数据,发送给数据库接口以保存数据使用 。不太明白的可以参考我上一篇文章说明Rapidjson的使用过程-Parse解析数组
53 0
|
7天前
yolo-world 源码解析(六)(2)
yolo-world 源码解析(六)
18 0

推荐镜像

更多