C#中矩阵的使用

前言

矩阵在数据处理中有非常广泛的应用,本文主要记录在C#中应用矩阵来处理数据,在后续学到新的相关内容会不时对本文进行更新。

一. 给矩阵添加行列

在数据质量控制中经常会使用滑窗方法,此时对边界层数据就要添加行或列,本部分即为对数据添加行/列的实现方式

csharp 复制代码
using MathNet.Numerics.LinearAlgebra.Single;
namespace MyConsoleAPPTest
{
	class Program
	{
		private bool addMatrix(out DenseMatrix denseMatrix)
		{
			// 创建矩阵并初始化
			float[,] matrix = new float[3,3]{{1,2,3},{4,5,6},{7,8,9}};
			DenseMatrix denseMatrix = DenseMatrix.OfArray(matrix);
			int rowCount = denseMatrix.RowCount;
			// 上下加一行
			var rowEndSub = denseMatrix.SubMatrix(0, 1, 0, 3);//第0行开始取1行,第0列开始取3列
			var rowStartSub = denseMatrix.SubMatrix(rowCount - 1, 1, 0, 3);
			denseMatrix = (DenseMatrix)denseMatrix.Stack(rowEndSub); // 会加到后行
			denseMatrix = (DenseMatrix)rowStartSub.Stack(denseMatrix);
			// 左右各加一列
			var colMat = DenseMatrix.Create(rowCount+2, 1, float.NaN);
			denseMatrix = (DenseMatrix)colMat.Append(denseMatrix);  // 以列加入
			denseMatrix = (DenseMatrix)denseMatrix.Append(colMat);
			return true;			
		}
		static void Main(string[] args)
		{
			Program p = new Program();
			p.addMatrix(out DenseMatrix denseMatrix);
		}
	}
}

输出的矩阵会在原来矩阵的第一行前加入其最后一行,最后一行加入其第一行,左边和右边分别加入一列NaN。

2024.10.16 16:19

未完待续。。。
相关推荐
2601_962218613 小时前
万象生鲜系统业财一体化底层打通技术自动生成经营账单
大数据·数据库·人工智能·python·算法
吞下星星的少年·-·3 小时前
The 2026 ICPC Asia East Continent Online Contest (II)(构造)
数据结构·算法
零依赖极客4 小时前
Day 6·1 ARMv8.2 dotprod——vdotq_s32 一条指令做 4 个点积
c语言·开发语言·人工智能·矩阵·arm·vllm
stolentime4 小时前
洛谷P10515 转圈题解
c++·算法·数学建模·贪心算法
和裕5 小时前
蜂窝板 vs 七层瓦楞重型纸箱:大件工业设备运输性能与成本全对比
大数据·运维·网络·人工智能·算法
衡石科技5 小时前
Data_Agent记忆机制与经验复用衡石分析智能体会话记忆与长期学习技术解析
人工智能·科技·学习·算法·企业级bi
wzdark6 小时前
基于矩阵的动态规划路径问题性能优化4
线性代数·矩阵·动态规划
shirsl7 小时前
算法 Day 2 滑动窗口 + 栈 / 单调栈
开发语言·python·算法
土司大王8 小时前
LeetCode hot100 回溯专题总结:Java 通用模板、决策树模型
java·算法·leetcode·决策树
2601_962218618 小时前
万象生鲜系统订单全生命周期状态同步技术实现业务可视
大数据·数据库·人工智能·python·算法