上一篇文章,我们介绍了使用c#读写matlab的mat数据格式的情况。mat格式的广泛应用使得很多人都了解,但同样还有一些数据格式也是在科学计算,数据分析,测试等方面的通用数据格式,那就是接下来我们要介绍的matrix market格式。我们同样是使用c#来操作该格式。
<a href="http://en.wikipedia.org/wiki/matrix_market_exchange_formats" target="_blank">http://en.wikipedia.org/wiki/matrix_market_exchange_formats</a> 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矩阵的部分截图,可以直接的理解该格式,的确是非常人性化,也方便不同软件,系统间的数据交换。
本文还是使用math.net提供的程序,只不过对其结构和使用进行分析。c#读取的返回值的矩阵或者向量格式也都是math.net中的类型。c#读取martix market文件的主要类型是matrixmarketreader,在mathnet.numerics.data.text项目中,而其中的方法都是静态方法,分别为读取矩阵和读取向量,并支持从文件和流中分别读取数据。看看如下几个静态函数的原型,就可以知道怎么样了:
上面要注意的是,该文件支持压缩,所以有一个compression参数,默认是未压缩的。
c#写入matrix market文件的方法和上面的读取类似,使用的是matrixmarketwriter类的静态方法,支持写入矩阵和向量,方法原型如下:
一般来说,写入文件比较常用一点,可以用于系统之间和样本数据的传递。总共就2个类,常用的也就4个方法,使用c#操作该数据格式就可以无忧了。
源码下载:参考官网网站。
本博客还有大量的.net开源技术文章,您可能感兴趣: