首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++ 特殊矩阵的压缩算法

前言 什么是特殊矩阵? 计算机语言中,一般使用二维数组存储矩阵数据。在实际存储时,会发现矩阵中有许多值相同或许多值为零的数据,且分布有一定的规律,称这类型的矩阵特殊矩阵。...为了节省存储空间,可以设计算法,对这类特殊矩阵进行压缩存储,让多个相同的非零数据只分配一个存储空间;对零数据不分配空间。 本文将聊聊如何压缩这类特殊矩阵,以及压缩后如何保证矩阵的常规操作不受影响。...压缩对称矩阵 什么是对称矩阵? 在一个n阶矩阵A中,若所有数据满足如下述特性,则可称A为对称矩阵。 a[i][j]==a[j][i] i是矩阵中的行号。 j是矩阵中的列号。...压缩稀疏矩阵 什么是稀疏矩阵? 如果矩阵A中的有效数据的数量远远小于矩阵实际能描述的元素的总数,则称A为稀疏矩阵。...3.1 三元组表 为了便于描述,压缩前的矩阵称为原稀疏矩阵,压缩后的稀疏矩阵称三元组表矩阵。 原稀疏矩阵也好,三元组表矩阵也好。只要顶着矩阵的这个词,就应该能进行矩阵相对应的操作。

2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    python特殊方法

    如书中所言,python拥有一致性。..._这个方法,重载了len方法,在这上面做一下修改: def __len__(self): return 10 这个时候 len(card) Out[12]: 10 由此可见一般python...和其他语言的方法的不同,比如java是通过a.length()来判断长度这个体现了python的语言特性 和这个相似的方法有 __getitem__:这样就可以迭代了以及切片了 __contains__...:in运算符就有意义了 这些特殊方法的使用 1.这是为了给python解释器调用,而不是自己的类调用,而这个是你自定义的类,会如上所示,会使用你的__len__方法 2.如果len这个是python内置类型...,会直接调用PyVarObject里的ob_size 3.不要随意调用这些特殊方法 通过实现特殊方法,可以使得你的类和python的内置类型一样

    59330

    python的常见矩阵除法_Python矩阵除法

    我有一个关于按元素划分矩阵的问题,我的意思是我想要第一个矩阵的元素[I,j]除以第二个矩阵(Q)的元素[I,j]。在 一些背景信息:我从我的存储器加载了一个图像。...我把每个像素的单色值存储在一个叫做“pixelMatrix”的矩阵中 此命令将大矩阵(128×128)转换为较小的矩阵(8×8)foto_dct = skimage.util.view_as_blocks...(pixelMatrix, block_shape=(8, 8)) 现在,在完成这项工作之后,我需要将foto_dct中的每个矩阵除以一个不同的矩阵(在这段代码中称为“Q”)。...这是矩阵“Q”:[[ 16 11 10 16 24 40 51 61] [ 12 12 14 19 26 58 60 55] [ 14 13 16 24 40 57 69 56] [ 14 17 22...(foto_dct[3,3],尽管我对它做了一些操作,第3列矩阵,第3行矩阵,如果你还记得第1步的话)[[613 250 -86 64 -63 59 -44 24] [ 38 -84 50 -57 54

    3.2K20

    第4章-变换-4.2-特殊矩阵变换和运算

    4.2 特殊矩阵变换和运算 在本节中,将介绍和导出对实时图形必不可少的几个矩阵变换和运算。首先,我们介绍了欧拉变换(连同它的参数提取),这是一种描述方向的直观方式。...此过程如公式4.22所示: image.png 在这里,我们放弃了 矩阵,改为 矩阵,因为后者提供了旋转矩阵的所有必要信息。也就是说,等效的 矩阵的其余部分总是在右下角位置包含0和1。...(俯仰)和 (滚动),如公式4.25所示: image.png 但是,我们需要处理一个特殊情况。...4.2.3 矩阵分解 到目前为止,我们一直在假设我们知道我们正在使用的转换矩阵的起来和过程。通常情况并非如此。例如,可能与某个变换对象关联的只不过是一个级联矩阵。...在只有对象矩阵可用的动画中的关键帧之间进行插值。 从旋转矩阵中移除剪切。 我们已经介绍了两种分解,即为刚体变换导出平移和旋转矩阵(第4.1.6节)和从正交矩阵导出欧拉角(第4.2.2节)。

    3.5K40

    python转置矩阵代码_python 矩阵转置

    python怎么实现矩阵的转置 只能用循环自己写算法吗 自带函数有可以算的吗 或者网上的算法可以用的 python矩阵转置怎么做?...T python 字符串如何变成矩阵进行矩阵转置 如输入一串“w,t,w;t,u,u;t,u,u”将其变成矩阵进行转置操作 需CSS布局HTML小编今天和大家分享: 你需要转置一个二维数组,将行列互换...print [[r[col] for r in arr] for col in rang 用python输入一个矩阵字符串srcStr,输出这个矩阵要CSS布局HTML小编今天和大家分享:输入将以“用半角逗号隔开列...matrix = [matrix[i][j] for i in range(length)] for j in range(length)] Method 2: matrix = zip(*matrix) python...(10, 99) for i in range(5)] for j in range(5)])result = before.Tprint(result) 如何用python实现行列互换 用excel的话建议用

    5.6K50

    python创造矩阵

    python的numpy创造矩阵 from numpy import mat import numpy as np data1=mat(zeros((3,3)));               #创建一个...3*3的零矩阵矩阵这里zeros函数的参数是一个tuple类型(3,3) data2=mat(ones((2,4)));                #创建一个2*4的1矩阵,默认是浮点型的数据, ...                                                              创建的是一个二维数组, data4=mat(random.randint(10,size=(3,3)));           #生成一个3*3的0-10之间的随机整数矩阵...data6=mat(eye(2,2,dtype=int));           #产生一个2*2的对角矩阵 a1=[1,2,3]; a2=mat(diag(a1));           #生成一个对角线为...1、2、3的对角矩阵 手动创造矩阵 count = 1 a = [] for i in range(0, 3): tmp = [] for j in range(0, 3):

    2.6K20

    Python 拓展之特殊函数

    写在之前 今天给大家介绍几个比较特殊的函数,他们具有函数式编程的特点,有人将它们视为 Python 可进行 “函数式编程” 的见证,至于什么是函数式编程,不是本篇文章的重点,感兴趣的可以去了解一下。...老读者可能都知道,我非常推崇 Python 的简洁优雅,而今天的这几个函数,有了它们,最大的好处就是可以让程序更简洁,当然,没有它们程序也可以用其它方式实现。...filter 函数 filter 翻译过来的意思是 “过滤器”,在 Python 中,它也确实是起到的是过滤器的作用。...在 Python3 中,reduce 函数被放到 functools 模块里,在 Python2 中还是在全局命名空间。...写在之后 至此,我在上面介绍了四个函数,这些函数不仅使得代码更加的简单,而且在 Python3 中也优化了它们的性能。所以如果你喜欢的话,尽可以放心大胆的使用。

    34410

    【数据结构】数组和字符串(三):特殊矩阵的压缩存储:三角矩阵、对称矩阵——一维数组

    4.2.1 矩阵的数组表示 【数据结构】数组和字符串(一):矩阵的数组表示 4.2.2 特殊矩阵的压缩存储   矩阵是以按行优先次序将所有矩阵元素存放在一个一维数组中。...但是对于特殊矩阵,如对称矩阵、三角矩阵、对角矩阵和稀疏矩阵等, 如果用这种方式存储,会出现大量存储空间存放重复信息或零元素的情况,这样会造成很大的空间浪费。...三角矩阵:指上三角或下三角的元素都为零的矩阵。同样地,只需存储其中一部分非零元素,可以节省存储空间。 对称矩阵:指矩阵中的元素关于主对角线对称的矩阵。...由于对称矩阵的非零元素有一定的规律,可以只存储其中一部分元素,从而减少存储空间。 稀疏矩阵:指大部分元素为零的矩阵。...对角矩阵的压缩存储 【数据结构】数组和字符串(二):特殊矩阵的压缩存储:对角矩阵——一维数组 b. 三角矩阵的压缩存储   三角矩阵分为上三角矩阵和下三角矩阵

    11510

    【数据结构】数组和字符串(二):特殊矩阵的压缩存储:对角矩阵——一维数组

    4.2.1 矩阵的数组表示 【数据结构】数组和字符串(一):矩阵的数组表示 4.2.2 特殊矩阵的压缩存储   矩阵是以按行优先次序将所有矩阵元素存放在一个一维数组中。...但是对于特殊矩阵,如对称矩阵、三角矩阵、对角矩阵和稀疏矩阵等, 如果用这种方式存储,会出现大量存储空间存放重复信息或零元素的情况,这样会造成很大的空间浪费。...三角矩阵:指上三角或下三角的元素都为零的矩阵。同样地,只需存储其中一部分非零元素,可以节省存储空间。 对称矩阵:指矩阵中的元素关于主对角线对称的矩阵。...由于对称矩阵的非零元素有一定的规律,可以只存储其中一部分元素,从而减少存储空间。 稀疏矩阵:指大部分元素为零的矩阵。...然后调用 initialize 函数初始化矩阵,将矩阵的维度设置为4,并将对角元素分别设置为1、2、3和4。最后使用 printMatrix 函数打印矩阵

    8410
    领券