博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
开源Math.NET基础数学类库使用(04)C#解析Matrix Marke数据格式
阅读量:6172 次
发布时间:2019-06-21

本文共 3025 字,大约阅读时间需要 10 分钟。

原文:

 开源Math.NET基础数学类库使用系列文章总目录: 

  1.  

  2. 

  3.

  4.

  5.

  6.

  7. 

  8.

  9.

10.

11.

12.

13.

14.

后续继续更新中。。如文章链接打开有误,请关注博客,因为文章正在编辑修改中,所有已经列出的目录都将在1个月之内发表。 

前言

  上一篇文章,我们介绍了使用C#读写Matlab的Mat数据格式的情况。mat格式的广泛应用使得很多人都了解,但同样还有一些数据格式也是在科学计算,数据分析,测试等方面的通用数据格式,那就是接下来我们要介绍的Matrix Market格式。我们同样是使用C#来操作该格式。

如果本文资源或者显示有问题,请参考 :

1.Matrix Market格式介绍

  Matrix Market是一个基于AscII的可读性很强的文件格式,目的是促进矩阵数据的交流。NIST的数据存储就有大量的数值线性代数相关的研究比较测试数据采用该格式。其他信息可以参考官网:

The Matrix Market exchange formats are a set of human readable, ASCII-based file formats designed to facilitate the exchange of matrix data. The file formats were designed and adopted for the Matrix Market, a NIST repository for test data for use in comparative studies of algorithms for numerical linear algebra。

下面是一个Matrix Market矩阵的部分截图,可以直接的理解该格式,的确是非常人性化,也方便不同软件,系统间的数据交换。

2.C#读取Matrix Market文件

  本文还是使用Math.NET提供的程序,只不过对其结构和使用进行分析。C#读取的返回值的矩阵或者向量格式也都是Math.NET中的类型。C#读取Martix Market文件的主要类型是MatrixMarketReader,在MathNet.Numerics.Data.Text项目中,而其中的方法都是静态方法,分别为读取矩阵和读取向量,并支持从文件和流中分别读取数据。看看如下几个静态函数的原型,就可以知道怎么样了:  

1 public static Matrix
ReadMatrix
(string filePath,Compression compression=Compression.Uncompressed) where T : struct, IEquatable
, IFormattable 2 3 public static Vector
ReadVector
(string filePath,Compression compression=Compression.Uncompressed) where T : struct, IEquatable
, IFormattable 4 5 public static Matrix
ReadMatrix
(Stream stream) where T :struct,IEquatable
,IFormattable 6 7 public static Vector
ReadVector
(Stream stream) where T :struct,IEquatable
,IFormattable 8 9 public static Matrix
ReadMatrix
(TextReader reader) where T :struct,IEquatable
,IFormattable10 11 public static Vector
ReadVector
(TextReader reader) where T :struct,IEquatable
,IFormattable

  上面要注意的是,该文件支持压缩,所以有一个Compression参数,默认是未压缩的。

3.C#保存数据为Matrix Market文件

  C#写入Matrix Market文件的方法和上面的读取类似,使用的是MatrixMarketWriter类的静态方法,支持写入矩阵和向量,方法原型如下:

1 public static void WriteMatrix
(string filePath, Matrix
matrix, Compression compression = Compression.Uncompressed) where T : struct, IEquatable
, IFormattable 2 3 public static void WriteVector
(string filePath, Vector
vector, Compression compression = Compression.Uncompressed) where T : struct, IEquatable
, IFormattable 4 5 public static void WriteMatrix
(Stream stream, Matrix
matrix) where T : struct, IEquatable
, IFormattable 6 7 public static void WriteVector
(Stream stream, Vector
vector) where T:struct,IEquatable
,IFormattable 8 9 public static void WriteMatrix
(TextWriter writer,Matrix
matrix) where T :struct,IEquatable
, IFormattable10 11 public static void WriteVector
(TextWriter writer, Vector
vector) where T :struct,IEquatable
, IFormattable

  一般来说,写入文件比较常用一点,可以用于系统之间和样本数据的传递。总共就2个类,常用的也就4个方法,使用C#操作该数据格式就可以无忧了。

4.资源

  源码下载:参考官网网站。

  如果本文资源或者显示有问题,请参考 :

本博客还有大量的.NET开源技术文章,您可能感兴趣: 

1.:

2.:

3.

4.

5.

6.  

转载地址:http://upxba.baihongyu.com/

你可能感兴趣的文章
处女座与复读机
查看>>
Laravel 5.2数据库--迁移migration
查看>>
ExtJs Extender controls 不错的例子
查看>>
html的基础知识
查看>>
Mybatis Sql片段的应用
查看>>
突发奇想20150126
查看>>
Nginx + CGI/FastCGI + C/Cpp
查看>>
学习笔记------jsp页面与jsp标记
查看>>
DS博客作业02--线性表
查看>>
第三届ACM山东省赛I题_Chess_STL
查看>>
jQuery each和js forEach用法比较
查看>>
前端笔记-作用域链的一些理解加记录(JS高级程序设计读书笔记1)
查看>>
改造你的网站,变身 PWA
查看>>
Leetcode 142. Linked List Cycle IIJAVA语言
查看>>
网络基础5
查看>>
Exchange Supported operating system platforms
查看>>
unity3鼠标点击移动
查看>>
Linux 安装中文包
查看>>
谷物大脑
查看>>
访问控制-禁止php解析、user_agent,PHP相关配置
查看>>