标签:
原文:【原创】开源Math.NET基础数学类库使用(05)C#解析Delimited Formats数据格式开源Math.NET基础数学类库使用系列文章总目录:
1.开源.NET基础数学计算组件Math.NET(一)综合介绍
2.开源.NET基础数学计算组件Math.NET(二)矩阵向量计算
3.开源.NET基础数学计算组件Math.NET(三)C#解析Matlab的mat格式
4.开源.NET基础数学类库使用Math.NET(四)C#解析Matrix Marke数据格式
5.开源.NET基础数学类库使用Math.NET(五)C#解析Delimited Formats数据格式
6.开源.NET基础数学类库使用Math.NET(六)数值分析之线性方程直接求解
7.开源.NET基础数学类库使用Math.NET(七)常用的一些数学常数
8.开源.NET基础数学类库使用Math.NET(八)C#进行数值积分
9.开源.NET基础数学类库使用Math.NET(九)相关数论函数使用
10.开源.NET基础数学类库使用Math.NET(十)C#进行数据统计
11.开源.NET基础数学类库使用Math.NET(十一)C#计算相关系数
12.开源.NET基础数学类库使用Math.NET(十二)随机数扩展方法
13.开源.NET基础数学类库使用Math.NET(十三)C#实现其他随机数生成器
14.开源.NET基础数学类库使用Math.NET(十四)安全的随机数生成器扩展
后续继续更新中。。如文章链接打开有误,请关注博客,因为文章正在编辑修改中,所有已经列出的目录都将在1个月之内发表。
上一篇文章,我们介绍了使用C#读写Matlab的Mat数据格式和通用的Matrix Market数据格式。今天还要介绍一个Math.NET读取Delimited Formats数据格式的例子。Delimited Formats(也称DSV) 数据格式也是一种比较常见的数据存储和交换格式,和CSV格式也有些类似。
如果本文资源或者显示有问题,请参考 本文原文地址:http://www.cnblogs.com/asxinyu/p/4268626.html
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"
本文还是使用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
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
源码下载:参考官方网站
如果本文资源或者显示有问题,请参考 本文原文地址:http://www.cnblogs.com/asxinyu/p/4268626.html
本博客还有大量的.NET开源技术文章,您可能感兴趣:
开源Math.NET基础数学类库使用(05)C#解析Delimited Formats数据格式
标签:
原文地址:http://www.cnblogs.com/lonelyxmas/p/4331750.html