【原创】开源Math.NET基础数学类库使用(04)C#解析Matrix Marke数据格式

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
云解析DNS,个人版 1个月
简介:

               本博客所有文章分类的总目录:【总目录】本博客博文总目录-实时更新 

开源Math.NET基础数学类库使用总目录:【目录】开源Math.NET基础数学类库使用总目录

前言

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

如果本文资源或者显示有问题,请参考 本文原文地址http://www.cnblogs.com/asxinyu/p/4266758.html

1.Matrix Market格式介绍

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

http://en.wikipedia.org/wiki/Matrix_Market_exchange_formats

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<T> ReadMatrix<T>(string filePath,Compression compression=Compression.Uncompressed) where T : struct, IEquatable<T>, IFormattable
 2 
 3 public static Vector<T> ReadVector<T>(string filePath,Compression compression=Compression.Uncompressed) where T : struct, IEquatable<T>, IFormattable
 4 
 5 public static Matrix<T> ReadMatrix<T>(Stream stream) where T :struct,IEquatable<T>,IFormattable
 6 
 7 public static Vector<T> ReadVector<T>(Stream stream) where T :struct,IEquatable<T>,IFormattable
 8 
 9 public static Matrix<T> ReadMatrix<T>(TextReader reader) where T :struct,IEquatable<T>,IFormattable
10 
11 public static Vector<T> ReadVector<T>(TextReader reader) where T :struct,IEquatable<T>,IFormattable
复制代码

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

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

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

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

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

4.资源

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

  如果本文资源或者显示有问题,请参考 本文原文地址http://www.cnblogs.com/asxinyu/p/4266758.html

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

1.开源Math.NET基础数学类库使用系列文章链接

2.开源C#彩票数据资料库系列文章链接

3.开源的.NET平台ORM组件文章:链接

4.其他开源的.NET组件文章:链接

5..NET平台机器学习组件-Infer.NET系列文章:链接

6.Matlab混合编程文章:链接  




本文转自数据之巅博客园博客,原文链接:http://www.cnblogs.com/asxinyu/p/dotnet_Opensource_MathNet_Parse_MatrixMarket_4.html,如需转载请自行联系原作者

相关文章
|
6天前
|
监控 数据可视化 搜索推荐
万界星空科技商业开源MES系统全面解析
万界星空科技提供商业开源MES系统,基于Java的开源版本,含源码及拖拽式数据大屏,适用于定制开发。系统集成ERP、PDM、QC,实现无缝对接与智能调度,优化资源配置。具备实时监控、质量控制、灵活定制等功能,支持低代码定制,广泛应用于多个制造业领域。欲了解更多,可访问官网或搜索联系。
24 4
|
21天前
|
人工智能 开发框架 Devops
.NET技术概览:** 本文探讨了.NET的核心特性,包括多语言支持、Common Language Runtime、丰富的类库和跨平台能力,强调其在企业级、Web、移动及游戏开发中的应用。
【7月更文挑战第4天】.NET技术概览:** 本文探讨了.NET的核心特性,包括多语言支持、Common Language Runtime、丰富的类库和跨平台能力,强调其在企业级、Web、移动及游戏开发中的应用。此外,讨论了.NET如何通过性能优化、DevOps集成、AI与ML支持以及开源策略应对未来挑战,为开发者提供强大工具,共创软件开发新篇章。
21 3
|
21天前
|
人工智能 前端开发 Devops
NET技术在现代开发中的影响力日益增强,本文聚焦其核心价值,如多语言支持、强大的Visual Studio工具、丰富的类库和跨平台能力。
【7月更文挑战第4天】**.NET技术在现代开发中的影响力日益增强,本文聚焦其核心价值,如多语言支持、强大的Visual Studio工具、丰富的类库和跨平台能力。实际应用涵盖企业系统、Web、移动和游戏开发,以及云服务。面对性能挑战、容器化、AI集成及跨平台竞争,.NET持续创新,开发者应关注技术趋势,提升技能,并参与社区,共同推进技术发展。**
16 1
|
16天前
|
开发框架 .NET API
.NET Core 和 .NET 标准类库项目类型有什么区别?
在 Visual Studio 中,可创建三种类库:.NET Framework、.NET Standard 和 .NET Core。.NET Standard 是规范,确保跨.NET实现的API一致性,适用于代码共享。.NET Framework 用于特定技术,如旧版支持。.NET Core 库允许访问更多API但限制兼容性。选择取决于兼容性和所需API:需要广泛兼容性时用.NET Standard,需要更多API时用.NET Core。.NET Standard 替代了 PCL,促进多平台共享代码。
|
2月前
|
存储 关系型数据库 分布式数据库
【PolarDB 开源】PolarDB 存储引擎优化:PolarStore 的深度解析与优化
【5月更文挑战第25天】PolarDB的PolarStore存储引擎以其高效索引和优化的压缩算法提升数据存储与访问性能。通过并发控制保证事务正确性,同时支持数据压缩和索引优化。在实际应用中,优化包括调整索引结构、数据分区、事务管理及定期数据库维护。结合业务需求进行深度优化,可最大化PolarStore的性能潜力,推动数据库系统发展。
123 0
|
2月前
|
域名解析 网络协议 应用服务中间件
2024最新彩虹聚合DNS管理系统源码v1.3 全开源
聚合DNS管理系统可以实现在一个网站内管理多个平台的域名解析,目前已支持的域名平台有:阿里云、腾讯云、华为云、西部数码、DNSLA、CloudFlare。 本系统支持多用户,每个用户可分配不同的域名解析权限;支持API接口,支持获取域名独立DNS控制面板登录链接,方便各种IDC系统对接。
114 0
|
2月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
118 0
|
2月前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
46 0
|
2月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
183 5
|
2月前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界

推荐镜像

更多