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

本文共 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://jaixx.baihongyu.com/

你可能感兴趣的文章
CentOS 6.3中配置bond多网卡负载均衡
查看>>
调整数组使奇数全部都位于偶数前面
查看>>
clamav 完整查杀 linux 病毒实战
查看>>
我的友情链接
查看>>
EIGRP的Metric计算以及负载均衡
查看>>
org-capture 配置
查看>>
linux下lvs搭建负载均衡集群
查看>>
JMS 实例讲解
查看>>
求教:如何成为一个优秀的项目经理人
查看>>
shell 脚本--备份、还原mysql数据库
查看>>
JS脚本静态变量调用方法
查看>>
linux中cacti和nagios整合
查看>>
新调查结果表明:NoSQL采用呈上升趋势
查看>>
ASP.NET MVC测试方法与实战技巧
查看>>
Mysql慢查询
查看>>
传统线程机制之定时器的应用(TIMER,TIMERTASK)
查看>>
org.apache.hadoop.hive.contrib.serde2.RegexSerDe not found
查看>>
citrix客户端的配置和访问(六)
查看>>
Linux下搭建Ionic框架
查看>>
移动支付的基本要素
查看>>