矩阵的压缩存储

news2024/11/27 20:31:04

本文主要内容:本文主要介绍几种特殊矩阵的压缩存储特殊矩阵指具有许多相同矩阵元素或零元素,并且这些相同矩阵元素的分布有一定规律性的矩阵,常见的特殊矩阵有对称矩阵、上(下)三角矩阵、对角矩阵等。压缩存储指为多个值相同的元素只分配一个存储空间,对零元素不分配存储空间,其目的是节省存储空间。

特殊矩阵的压缩存储方法:找出特殊矩阵中值相同的矩阵元素的分布规律,把那些呈现规律性分布的、值相同的多个矩阵元素压缩到一个存储空间中。具体方法:实现一个映射函数,将矩阵下标与一维数组下标相映射。

目录

  • 1.对称矩阵
    • (1)对称矩阵定义
    • (2)对称矩阵的压缩存储
    • (3)对称矩阵中元素与数组元素下标的对应关系
  • 2.三角矩阵
    • (1)三角矩阵定义
    • (2)三角矩阵的压缩存储
    • (3)三角矩阵中元素与数组元素下标的对应关系
  • 3.三对角矩阵/带状矩阵
    • (1)三对角矩阵定义
    • (2)三对角矩阵的压缩存储、元素与数组元素下标的对应关系
  • 4.稀疏矩阵

1.对称矩阵

(1)对称矩阵定义

若对一个n阶方阵A[1…n][1…n]中的任意一个元素aij都有aij=aji(1≤i,j≤n),则称其为对称矩阵。其中的元素可以划分为3个部分,即上三角区、主对角线和下三角区。
对称矩阵

(2)对称矩阵的压缩存储

对于n阶压缩矩阵,上三角区的所有元素和下三角区的对应元素相同,若仍采用二维数组存放,会浪费几乎一半的空间,为此将对称矩阵A[1…n][1…n]存放在一维数组B[n(n+1)/2]中,即将元素aij存放在bk中。只存放下三角部分(含主对角线)的元素。

由于对称矩阵一定是方阵,不妨设i=j=n,则**下三角区的元素加上主对角线上的元素总和(需要存储的数据数量)**为:
S = n ( n + 1 ) / 2 S=n(n+1)/2 S=n(n+1)/2
第i行第j个元素的序列号为:
a i j = [ 1 + 2 + . . . + ( i − 1 ) ] + j = i ( i − 1 ) / 2 + j . aij = [1+2+...+(i-1)]+j=i(i-1)/2+j. aij=[1+2+...+(i1)]+j=i(i1)/2+j.
存储在矩阵中的元素下标k为:
k = i ( i − 1 ) / 2 + j − 1 k=i(i-1)/2+j-1 k=i(i1)/2+j1

(3)对称矩阵中元素与数组元素下标的对应关系

数组从0开始,所以对称矩阵中元素的序号与数组元素下标相差1
对称矩阵中元素与数组元素小标的对应关系

2.三角矩阵

(1)三角矩阵定义

在下三角矩阵中,上三角区的所有元素均为同一常量。其存储思想与对称矩阵类似,不同的是,只需要存储上三角区的常量一次。可以将下三角矩阵A[1…n][1…n]压缩存储在B[n(n+1)/2+1]中。三角矩阵形式如下图所示。
下三角矩阵:
下三角矩阵
上三角矩阵
在这里插入图片描述

(2)三角矩阵的压缩存储

下三角矩阵的压缩存储与对称矩阵相同,唯一不同的是多出来一个元素B[n(n+1)/2]存储上三角区的常数C。上三角矩阵类似。

(3)三角矩阵中元素与数组元素下标的对应关系

下三角矩阵:
下三角矩阵
上三角矩阵:
元素aij的序号为
a i j = [ n + ( n − 1 ) + . . . + ( n − i + 2 ) − ( j − i + 1 ) ] = ( i − 1 ) ( 2 n − i + 2 ) / 2 + ( j − i ) . aij = [n+(n-1)+...+(n-i+2)-(j-i+1)]=(i-1)(2n-i+2)/2+(j-i). aij=[n+(n1)+...+(ni+2)(ji+1)]=(i1)(2ni+2)/2+(ji).
存储在矩阵中的元素下标k为:
k = ( i − 1 ) ( 2 n − i + 2 ) / 2 + ( j − i ) − 1 k=(i-1)(2n-i+2)/2+(j-i)-1 k=(i1)(2ni+2)/2+(ji)1
上三角矩阵
上三角矩阵在内存中的压缩存储形式:
上三角矩阵在内存中的压缩存储形式

3.三对角矩阵/带状矩阵

(1)三对角矩阵定义

对角矩阵也称带状矩阵。对于n阶方阵A中的任意元素aij,当|i-j|>1时,有aij=0(1≤i,j≤n),称为三对角矩阵。在三对角矩阵中,所有非零元素都集中在以主对角线为中心的3条对角线的区域,其他区域元素都为0.
带状矩阵

(2)三对角矩阵的压缩存储、元素与数组元素下标的对应关系

将3条对角线上的元素按行优先方式存放在一维数组B中,元素aij在数组中存放的下标是:
k = 2 i + j − 3 k=2i+j-3 k=2i+j3

4.稀疏矩阵

矩阵中非零元素的个数相对于矩阵元素的总个数来说非常少,即矩阵元素个数>>非零元素个数,这种矩阵称为非零矩阵。
对于非零矩阵,仅存储非零元素即可,但零元素的分布往往没有规律,所以仅存储非零元素的值是不够的,还要一起存储它所在的行和列。可以存储三元组(行标,列标,值)。稀疏矩阵压缩存储后就失去了随机存取特性。
稀疏矩阵-三元组
本文为个人学习总结所得,如有问题欢迎评论区指正、讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/724083.html

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

相关文章

Vite按需引入自定义组件unplugin-vue-components

1.安装插件 npm i unplugin-vue-components -D 2.vite.config.ts文件加如下代码 plugins: [vue({reactivityTransform: true}),Components({extensions: [vue, md],include: [/\.vue$/, /\.vue\?vue/, /\.md$/],dts: src/components.d.ts,deep: true, // 搜索子目录dirs: [s…

MySQL体系结构及各结构的功能

MySQL体系结构 MySQL的体系结构实际就是MySQL数据库是由那些部分构成,每个部分的具体作用是什么。 Connectors: 用于不同的编程语言连接MySQL数据库,即对外提供的API。 Management Service &Utilities: 用于管理系统&…

Android studio实现网上订餐app

目录 一.应用分析 1.1应用总体描述 1.2应用开发环境 1.3应用模块说明 二.效果展示 2.1店铺界面 2.2店铺详情界面 2.3菜品详情界面 2.4订单界面 三.服务器数据准备 四.店铺功能业务实现 4.1搭建标题栏布局 1.创建项目 2.导入界面图片 3.搭建标题栏布局…

旅游卡小程序分销系统开发

旅游业的不断发展,旅游卡作为一种便捷的旅游方式越来越受到人们的青睐。为了吸引更多的游客,许多旅游卡品牌开始推出各种优惠活动,例如折扣、免费景点等。为了实现这些优惠活动,旅游卡品牌需要开发一款小程序分销系统,…

主成分分析系列(一)概览及为什么数据要中心化

一、概览 主成分分析(Principle Component Analysis,PCA)算法属于数据降维算法里面的一种。数据降维算法的主要想法是从高维度数据中找到一种结构,这种结构蕴含了数据中的大部分信息,从而将高维数据降维到低维数据&am…

开利网络受邀参与广州三会数字化转型主题研讨会

7月4日,开利网络受邀来到位于广州黄埔的视源集团总部,参与由广州三会组织的企业数字化转型主题系列研讨会。降本增效是企业经营的重要目标,本次数字化转型议题则从“会议”这一要素出发,探讨如何利用软硬件技术能力帮助企业完成会…

《疯狂Android讲义》第2版 第3.5.2节关于Handler的代码

类似定时切换商品效果&#xff1a; 布局文件&#xff1a; <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-…

Python自动化测试面试题(精选版)

目录 项目相关 测试框架 测试工具 测试方法 Python基础 ​&#x1f381;更多干货 完整版文档下载方式&#xff1a; 今天由凡哥给你介绍一些Python自动化测试中常见的面试题&#xff0c;涵盖了Python基础、测试框架、测试工具、测试方法等方面的内容&#xff0c;希望能够…

华为OD机试真题 Python 实现【优秀学员统计】【2023Q1 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、补充说明五、解题思路六、Python算法源码七、效果展示1、输入2、输出3、说明 一、题目描述 公司某部门软件教导团正在组织新员工每日打卡学习活动&#xff0c;他们开展这项学习活动已经一个月了&#xff0c;所以想统计下这个月优…

pdf转ppt怎么转换?分享这几个方法给大家!

将PDF文件转换为PPT演示文稿是一项常见需求&#xff0c;无论是为了编辑、演示还是共享文件。 随着信息技术的不断进步&#xff0c;我们经常遇到需要将PDF文件转换为PPT演示文稿的情况。以下是四种简便的方法&#xff0c;供大家参考。 方法一&#xff1a;使用记灵在线工具 通…

Salesforce Associate认证考试指南来啦!(内含备考攻略)

Salesforce Associate认证是一项全新的入门级认证&#xff0c;针对0-6个月Salesforce经验的学习者。这一新认证不再强调实践专业知识&#xff0c;而是验证并增强那些拥有Salesforce基础知识的备考者。这些知识包括了解CRM平台的用途、解决的业务需求&#xff0c;以及如何使用Sa…

若依管理系统包名修改工具下载,使用教程(本人实测有效)

下载地址&#xff1a; 若依官网指定下载-Gitee包名修改文件下载地址 使用方法&#xff1a; 1.选择文件的地方需要选择zip压缩文件&#xff0c;把从若依官网拉下来的代码压缩成zip文件即可

Django实现简单的音乐播放器 3

在原有音乐播放器上请求方式优化和增加加载本地音乐功能。 效果&#xff1a; 目录 播放列表优化 设置csrf_token 前端改为post请求 视图端增加post验证 加载歌曲 视图 设置路由 模板 加载layui css 加载layui js 增加功能列表 功能列表脚本实现 最终效果 总结 播…

分布式监控之Zabbix6.0监控系统一

分布式监控之Zabbix6.0监控系统 前言一、Zabbix1、介绍2、zabbix监控原理3、Zabbix6.0版本新特性4、Zabbix6.0功能组件5、Zabbix与Prometheus对比 二、Zabbix6.0部署1、部署zabbix服务端2、添加 zabbix 客户端主机3、自定义监控内容4、zabbix 自动发现5、zabbix 自动注册 前言 …

业务安全情报第十八期 | 知名手游开启公测,大批游戏账号遭抢注倒卖

目录 某知名手游遭账号抢注倒卖 倒卖游戏者的风险特征 游戏运营商快速识别倒卖账号的黑灰产 网络游戏已经成为许多人娱乐和放松的重要途径。随着游戏玩家追求迅速提升角色等级和属性的愿望日益增长&#xff0c;游戏账号倒卖、账号出租越来越多&#xff0c;并逐步衍生出一条灰…

智慧电子班牌是什么?电子班牌云平台源码的开发技术有哪些?

智慧电子班牌是什么&#xff1f; 电子班牌是一种智能交互终端&#xff0c;电子班牌可以解决“走班教学”考勤管理问题&#xff0c;将大数据、物联网和人工智能等新兴技术和教学管理工作融合&#xff0c;提升学校管理水平和管理效率。 电子班牌是安装在学校各教室门口的高清可视…

LeetCode·每日一题·2178. 拆分成最多数目的正偶数之和·贪心

作者&#xff1a;小迅 链接&#xff1a;https://leetcode.cn/problems/maximum-split-of-positive-even-integers/solutions/2332925/tan-xin-zhu-shi-chao-ji-xiang-xi-by-xun-zoioi/ 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 著作权归作者所有。商业转载请联系…

Vue2通过点击渲染循环的echarts

底下放置源码cv即可食用 几个注意事项&#xff1a; echartsData 这个变量是为了模拟后端数据格式changeTag() 这个方法是为了控制最多可以多选几条最后关于循环echarts的灵感来源于 明天也要努力 <!DOCTYPE html> <html lang"en"><head><meta…

上海亚商投顾:沪指缩量调整 PCB、CPO概念股全天领涨

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 沪指今日震荡调整&#xff0c;创业板指午后跌超1%。AI概念股反弹&#xff0c;存储芯片、CPO等方向领涨&#xff0c…

【MySQL】MySQL基本语句大全

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️MySQL】 文章目录 前言结构化查询语句分类MySQL语句大全&#x1f4da;DDL&#xff08;对数据库和表的操作&#xff09;&#x1f916;DQL&#xff08;查询语句&#xff09;&#x1f4bb;关键字&#x…