C++数组应用之特殊矩阵的压缩存储

矩阵:

矩阵是数值程序设计中经常用到的数学模型,它是由 m 行和 n 列的数值构成(m=n 时称为方阵)。在用高级语言编制的程序中,通常用二维 数组表示矩阵,它使矩阵中的每个元素都可在二维数组中找到相对应的存储位置 。然而在数值分析的计算中经常出现一些有下列特性的高阶矩阵,即矩阵中有很 多值相同的元或零值元,为了节省存储空间,需要对它们进行"压缩存储 ",即不存或少存这些值相同的元或零值元。

操作:可以对矩阵作 加、减、乘等运算。

存储压缩目标:

节约存储空间

压缩 的方法:

零元不存储

多个值相同的只存一个

压缩存储的 对象:

稀疏矩阵

特殊矩阵

特殊矩阵:

值相同元素 或者零元素分布有一定规律的矩阵称为特殊矩阵 例:对称矩阵、 上(下)三角 矩阵都是特殊矩阵

特殊矩阵压缩存储(以对称矩阵为例)

对称矩阵是满足下面条 件的n 阶矩阵: aij= aji  1<= i,j<= n

k= 0   1    2     3   4     5    6     n(n+1)/2-1

时间: 2024-09-19 08:55:12

C++数组应用之特殊矩阵的压缩存储的相关文章

数据结构例程——对称矩阵的压缩存储及基本运算

本文针对数据结构基础系列网络课程(5):数组与广义表中第2课时特殊矩阵的压缩存储. 问题:用压缩形式存储对称矩阵,实现下面的操作并测试 void Init(int *&b);//为N阶对称矩阵初始化存储数据的一维数组b int Value(int b[], int i, int j);//返回存储在b[M]中,对应二维数组A[i][j]的值 void Assign(int b[], int e, int i, int j);//将e赋值给对应二维数组元素A[i][j],要存储到b[M]中 voi

c语言-动态数组赋值,实现矩阵m,n的乘积,为什么p矩阵的输出总是0元素呢

问题描述 动态数组赋值,实现矩阵m,n的乘积,为什么p矩阵的输出总是0元素呢 #include"stdio.h" #include"stdlib.h" //动态分配的函数需要包含该头文件 //void Matrix(double ,double **,double **,int ,int ,int ); int main() { int i,j,k,mWidth,mHeight,nWidth,nHeight; double **m,n,**p; //定义指向指针的指

数据结构实践——压缩存储的对称矩阵的运算

本文针对数据结构基础系列网络课程(5):数组与广义表的实践项目. [项目 - 压缩存储的对称矩阵的运算] 设计算法,实现两个用压缩形式存储的对称矩阵A和B的加法和乘法.实现中请使用好前面设计的基本运算. [参考解答] #include <stdio.h> #define N 4 #define M 10 int value(int a[],int i,int j) { if (i>=j) return a[(i*(i+1))/2+j]; else return a[(j*(j+1))/2

稀疏矩阵 压缩存储-将.off文件中的数据进行压缩存储,最好是做到与稀疏矩阵的压缩存储相关

问题描述 将.off文件中的数据进行压缩存储,最好是做到与稀疏矩阵的压缩存储相关 一个duck.off文件,327个点的坐标(x,y,z.double型数据),650个三角形连接信息.要求是把这些信息读入数组,并将这些数据进行压缩存储. 我想问的是:这些数据的压缩存储怎么样可以抽象成 稀 疏 矩 阵的压缩存储duck.off: OFF (文件格式为OFF) 327 650 0 (有327个顶点构成650个三角形) 539.697 -1035.28 317.708 (第一个顶点的xyz分量) ..

mcu-请教jpeglib库在压缩存储jpeg图片的详细过程

问题描述 请教jpeglib库在压缩存储jpeg图片的详细过程 jpeg库在压缩存储rgb数据时,是以压缩后的MCU为单位存储,还是以压缩后的一行rgb数据为单位存储? jpeg在压缩图片时不是以8x8的像素块(MCU也可能不是8x8)来编码的么,为什么它提供的 jpeg_write_scanlines()函数给人的感觉是压缩一行像素图,再把压缩后的数据存入文件中而不是存储一个压缩后的MCU.

jsp 网站开发-如何在JSP页面中,把数组中的TreeSet中的实体存储地址变成实体对象

问题描述 如何在JSP页面中,把数组中的TreeSet中的实体存储地址变成实体对象 首先,感谢大家抽时间看我这问题. 问题阐述: 我在做Spring Hibernate和struts整合的实验,之前,我在Action类中已经将要放在页面中的数据,传到JSP页面中,以下是Action类的代码: /** * 显示所有的商品分类 * * * @return */ public void showAllCategory() { try { List<CategoryDTO> resultList =

数据的压缩存储与解压缩算法实现(C语言)

在一些嵌入式的项目设计中,空间是相当宝贵的,因为一个CPU的存储是有限的,所以此时我们在保存数据的时候,喜欢来进行压缩保存,著名的有哈夫曼树算法,专门用来做压缩的算法,当然,本节我们不讨论这些稍微高级的算法,写一个简单的例子,开发中遇见的,比如,我想把0xfe,0xf1,0x3e,0x3c这四个字节的数据存放在8个字节的buf里去,低4位在前,高4位在后,依次类推,存够8个byte.这时第一反应就是采用数组来进行设计这样的一个算法,如何设计? 假设,uchar tab[] = {0xfe , 0

TuShare(3):使用pandas 压缩存储hdf5文件

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/51025044 未经博主允许不得转载. 博主地址是:http://blog.csdn.net/freewebsys 1,使用压缩 hdf5在存储的是支持压缩,使用的方式是blosc,这个是速度最快的也是pandas默认支持的. 使用压缩可以提磁盘利用率,节省空间. 开启压缩也没有什么劣势,只会慢一点点. 压缩在小数据量的时候优势不明显,数据量大了才有优势. 同时发现hdf读取文件

稀疏矩阵 压缩存储-如何将.off文件存储 稀疏矩阵形式存储

问题描述 如何将.off文件存储 稀疏矩阵形式存储 详述如题. duck.off 文件,有327个点信息和650个三角形信息,可绘制一只鸭子. 如何将此文件中的信息 稀疏矩阵形式存储 急求,万分感谢