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

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

 开源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数据格式的情况。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.mzph.cn/news/297896.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

元胞自动机模型_【ABM仿真模拟】第三章 元胞自动机 B

是新朋友吗&#xff1f;记得先点蓝字关注我哦&#xff5e;第三章 元胞自动机 B2020/01/233.3投票模型(Voting) 课程导读无论是国内国外&#xff0c;投票结果的预测都异常受到关注。在众多唐斯模型、中间选民模型 、以及Sznajd模型中&#xff0c;投票模型作为典型的元胞自动机&a…

喜报!985大学首次登上Nature封面,这所学校可太不容易了!

全世界只有3.14 % 的人关注了爆炸吧知识建校64年来&#xff0c;第一次登上期刊封面又一所985院校出息了&#xff01;伦敦时间6月4号&#xff0c;《Nature》刊发了电子科技大学邓旭教授团队的最新研究成果&#xff0c;并被选为当期封面。《设计坚固的超疏水表面》《Nature》作为…

getbean方法找不到bean_iphone手机静音找不到怎么办 iphone静音找不到解决方法【图文】...

一个网友给小编留言&#xff0c;询问&#xff1a;“我的iphone调静音了现在找不到&#xff0c;有什么工具能找到”这一个问题&#xff0c;因此&#xff0c;在今天的iPhone使用教程&#xff0c;小编就给大家讲解一下具体的解决方法&#xff0c;那么&#xff0c;iphone手机静音找…

Web使用热敏打印小票(IE环境)

概述在html页下使用Epson P60II 热敏纸下打印小票&#xff0c;使用的打印方案为调用window.print()。代码实现1、定义窗体&#xff0c;设置宽度和高度<body onload"window.external.Print(0,0);" style"margin-top:0px;" ><form id"form1&qu…

linux配置ip地址 routes,CentOS 7 设置网络IP地址(示例代码)

CentOS 7 设置网络IP地址自动获得IP地址1&#xff0c;CentOS 7自动获得一个IP地址[[email protected] ~]# dhclient2&#xff0c;查看网卡信息&#xff0c;会发现有一个ens33的网卡[[email protected] ~]# ip addr1: lo: mtu 65536 qdisc noqueue state UNKNOWN qlen 1link/loo…

一些鲜为人知的编程事实(省身)

David Veksler曾发表过一篇博文《Some lesser-known truths about programming》&#xff0c;列出了一些鲜为人知的编程事实&#xff0c;这些事实是什么呢&#xff1f;酷壳个人网站楼主陈皓对此文进行了翻译&#xff0c;全文如下&#xff1a; 我的程序员经历让我明白了一些关于…

Android推送通知指南(转)

在开发Android和iPhone应用程序时&#xff0c;我们往往需要从服务器不定的向手机客户端即时推送各种通知消息&#xff0c;iPhone上已经有了比较简单的和完美的推送通知解决方案&#xff0c;可是Android平台上实现起来却相对比较麻烦&#xff0c;最近利用几天的时间对Android的推…

成长 | 《大厂晋升指南》学习总结(上)

【学习总结】| Edison Zhou温馨提示&#xff1a;文中的贴图均来自极客时间《大厂晋升指南》课程。0写在开头今年加入了一家产业互联网平台企业&#xff0c;公司刚好也开始借鉴阿里的职级体系。对于从来没有在互联网企业呆过的我&#xff0c;对于职级体系还比较陌生&#xff0c;…

vue路由上的#/怎么去掉_如何去掉vue路由中的#

通过脚手架vue-cli构建的项目&#xff0c;在项目启动后&#xff0c;URL地址上都会带有#&#xff0c;如&#xff1a;http://localhost:8080/#/father原因&#xff1a;这是因为vue-router 默认hash模式&#xff0c; 使用 URL 的 hash 来模拟一个完整的 URL&#xff0c;于是当 URL…

python3读取文件夹-python3获取文件及文件夹大小

Help on function walk inmodule os: walk(top, topdownTrue, οnerrοrNone, followlinksFalse) Directory tree generator. For each directoryinthe directory tree rooted at top (including top itself, but excluding"." and ".."), yields a 3-tupl…

String,StringBuffer与StringBuilder的区别

2019独角兽企业重金招聘Python工程师标准>>> String 字符串常量StringBuffer 字符串变量&#xff08;线程安全&#xff09;StringBuilder 字符串变量&#xff08;非线程安全&#xff09; 简要的说&#xff0c; String 类型和 StringBuffer 类型的主要性能区别其实在…

68张机械原理动图,够你看一晚上了!

全世界只有3.14 % 的人关注了爆炸吧知识机械动态图有的可以洞察工作原理&#xff0c;有的可以洞察结构&#xff0c;有的可以表达工作过程&#xff0c;不学机械的也能看得懂&#xff01;今天的68幅动态图总有一些你没有见过&#xff0c;相当棒&#xff01;一、制造篇一张图告诉你…

STB 上Linux软件系统解决方案

近年来&#xff0c;国内巨大的STB潜在市场&#xff0c;吸引了包括芯片厂商、CA厂商、中间件供应商、机顶盒生产厂商等厂家的热情&#xff0c;围绕STB的竞争全面展开。 机顶盒是一种专用设备&#xff0c;包括软件模块和硬件模块。软件模块包括系统引导程序、嵌入式操作系统和应用…

coreldraw带圈字符_coreldraw中如何使字体围绕一个圆形排列?

展开全部方法一2113&#xff1a;使用“使文5261本适合路径”命令步骤1&#xff1a;打4102好所需文1653字&#xff0c;并版选择工具箱中“权椭圆工具”按住Ctrl键&#xff0c;拖动鼠标绘制出一个正圆形。步骤2&#xff1a;选中文字&#xff0c;执行菜单栏“文本>使文本适合路…

Android 说说亮屏锁和键盘锁

Android中的两把锁 – WalkLock and KeyguardLock 详细分析WalkLock – 顾名思义 唤醒锁 点亮屏幕用的KeyguardLock – 顾名思义 键盘锁 解锁键盘用的详细介绍&#xff1a;1&#xff1a; WalkLock 唤醒锁WalkLock真的能点亮屏幕吗&#xff1f;答案是肯定的。 可是有时候为什么不…

频谱分析幅值单位_案例分享丨某水泥厂入窑斗提减速机不对中故障分析及处理...

斗式提升机是利用均匀固接于无端奉引构件上的一系列料斗,竖向提升物料的连续输送机械。分为环链、板链和皮带三种。今天因大师将给大家分享一个水泥厂的入窑斗提减速机不对中故障的诊断案例。1 设备概况设备基本信息&#xff1a;设备位置&#xff1a;1#产线入窑斗提&#xff08…

中国高校鄙视链指南

全世界只有3.14 % 的人关注了爆炸吧知识某一天&#xff0c;中国各大高校齐聚一堂&#xff0c;开了一场“拒绝高校鄙视链座谈会”&#xff0c;誓要消除高校之间的不平等&#xff0c;不让莘莘学子因为母校问题而被人低看一眼&#xff0c;遗憾终生。首先主持人介绍清华北大发言&am…

.NET 6 ThreadPool 实现概述

前言在即将发布的 .NET 6 runtime 中&#xff0c;默认的线程池实现从 C 代码改为了 C#&#xff0c;更方便我们学习线程池的设计了。https://github.com/dotnet/runtime/tree/release/6.0/src/libraries/System.Threading.ThreadPool新的线程池实现位于 PortableThreadPool 中&a…

嵌入式linux配置qt,基于qt的嵌入式Linux开发环境搭建

摘要&#xff1a;本文主要介绍在PC机上搭建基于QT的嵌入式开发环境&#xff0c;其中很多源文件都是开发板自带&#xff0c;需要相应资料的可以评论留下邮箱地址。版本&#xff1a;交叉编译工具链&#xff1a;GCC 4.7.3 【gcc-linaro-arm-linux-gnueabihf-4.7-2012.12-20121214…

三种方式使得iOS应用能够在后台进行数据更新和下载

三种方式使得iOS程序即使在关闭或崩溃的情况下也能够在后台持续进行一些任务&#xff0c;比如更新程序界面快照&#xff0c;下载文件等。这三个方法分别是Background Fetch&#xff0c;Remote Notification和NSURLSession的backgroundSessionConfiguration Background Fetch 开…