转置

sdut 1592转置矩阵【稀疏矩阵的压缩存储】【快速转置算法】

梦想与她 提交于 2020-03-18 15:16:15
转置矩阵 Time Limit: 1000ms Memory limit: 32768K 有疑问?点这里^_^ 题目链接: http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1592 题目描述 把矩阵A的行换成相应的列,得到的新矩阵称为A的转置矩阵,记作A'或A。 给你一个矩阵,求它的转置矩阵。 输入 输入数据的第一行是两个正整数R和C(1<=R,C<=10),分别代表矩阵的行数和列数。接下来R行,每行C个空格隔开的整数。 输出 输出转置后的矩阵,每行中相邻的两个数用空格隔开。 示例输入 3 3 1 2 3 4 5 6 7 8 9 示例输出 1 4 7 2 5 8 3 6 9 提示 代码: 1 #include<iostream> 2 #include<string.h> 3 #include<string> 4 using namespace std; 5 struct vode 6 { 7 int i,j; 8 int date; 9 }; 10 struct node 11 { 12 int mu,nu,tu; 13 struct vode data[1000]; 14 }; 15 struct node M,T; 16 void zhuanzhi(); 17 int main()

Matlab(9)——矩阵变换

巧了我就是萌 提交于 2020-03-17 03:42:54
Matlab(9)——矩阵变换 文章目录 Matlab(9)——矩阵变换 一、对角阵 1.提取矩阵对角线上的元素 2.构造对角矩阵 3.应用 二、三角阵 1.上三角矩阵 2.下三角矩阵 三、矩阵的转置 四、矩阵的旋转 五、矩阵的翻转 六、矩阵的逆矩阵 一、对角阵 1.提取矩阵对角线上的元素 diag(A):提取矩阵A对角线上的元素,形成一个列向量 diag(A,k): 提取A 的第 k 条对角线上元素的列向量。k=0 表示主对角线,k>0 位于主对角线上方,k<0 位于主对角线下方。 2.构造对角矩阵 diag(v) :以向量v为主对角线元素建立对角矩阵 D = diag(v,k) :将向量 v 的元素放置在第 k 条对角线上。k=0 表示主对角线,k>0位于主对角线上方,k<0 位于主对角线下方。 3.应用 现有一n阶方阵A (1)要将A第一行元素乘r1,第二行元素乘r2,…,第n行元素乘以rn 可以建立对角矩阵:B=diag(r1,r2,…rn),再B*A (2)要将A第一列元素乘c1,第二行元素乘c2,…,第n行元素乘以cn 可以建立对角矩阵:B=diag(c1,c2,…cn),再A*B 二、三角阵 1.上三角矩阵 triu(A):返回矩阵 A 的上三角部分。 triu(A,k):返回位于 A 的第 k 条对角线上以及该对角线上方的元素。(k可以为负) 2.下三角矩阵

线性代数(四)置换,转置,向量空间

让人想犯罪 __ 提交于 2020-03-09 08:39:50
置换矩阵P 置换矩阵(permutations)P是行重新排列了的单位矩阵。对于n×n的矩阵来说一共有n!种行变换的形式。所有的置换矩阵均是可逆的。 在求矩阵的逆,解方程组Ax=b,这些情况下如果出现主元位置为0的时候,就需要使用行互换。 A=LU,其中L为下三角矩阵,U为上三角矩阵。 P-1 = PT ,PTP = I P矩阵的转置乘以本身等于单位矩阵。 转置矩阵 转置(transpose)记作T,一个3行2列的矩阵,他的转置矩阵为2行3列,且(AT)ij = Aji。 对称矩阵 对称矩阵(symmetric matrices),一个矩阵为对称矩阵意味着它经过转制之后该矩阵没有变化。AT=A。 一个矩阵乘以他的转置矩阵,得到的矩阵一定是对称矩阵。RTR is always symmetric。 但是为什么呢? 我们利用定义来证明(RTR)T = RTRTT = RTR,注意这里的矩阵的转置的转置是原矩阵。验证完毕。 向量空间 向量空间(Vector Spaces) 举个例子,R2称为一个平面有所有的2维向量组成的向量空间。为了防止在运算过程中超出向量空间的范围,向量空间必须对数乘和加法两种运算是封闭的或者说对线性组合封闭。R2的子空间必须是过原点的线段,也可以是它本身。第三种R2的子空间是零向量。 这里没听太明白。。。 来源: CSDN 作者: CZZ_CS 链接: https:

转置卷积、微步卷积、空洞卷积是什么?

此生再无相见时 提交于 2020-03-04 21:17:21
文章目录 转置卷积(deconvolution) 微步卷积 空洞卷积(膨胀卷积) 转置卷积(deconvolution) 转置卷积是一个将低维特征转换到高维特征。为什么叫做转置卷积呢?其实就是引入了转置的思想。 假设我们现在有一个p维的向量Z,然后有个d维的向量X,p<d. 这样就会出现 Z = W·X,其中W的维度为(p,d),叫做转换矩阵. 现在,我们要从Z通过相似的方法来得到X,这样我们不难想到: X= W.T · X 其中W.T的维度是(d,p),但是这两个W并不是同一个值,而是具有转置的形式而已。 上面的例子是一维向量的情况,在卷积操作中,也可以借用这个思想,从低维到高维的转变可以在形式上看成是转置操作。 比如我们现在对一个4 * 4的输入做3 * 3的卷积操作(m=3,stride=1,padding=0),得到一个2 * 2的特征映射 如果我们想对这个2 * 2特征映射进行3 * 3卷积,并反过来得到4 * 4的输出,就可以用到转置卷积: 如上图所示,对2 * 2的特征映射先做 (m-1)padding 得到6 * 6的输入,然后对其进行3*3的卷积操作,从而得到4 * 4的特征映射。 同样,这个两个3 * 3的卷积参数不是一致的,都是可学习的。 微步卷积 微步卷积其实是一个转置卷积的一个特殊情况,就是卷积操作的 stride ≠ 1 。因为在现实中

数据结构(十七)数组和矩阵

点点圈 提交于 2020-03-01 06:55:49
  一、数组的定义:数组是n(n>=1)个相同数据类型的数据元素构成的占用一块地址连续的内存单元的有限集合。所有的线性结构(包括线性表、堆栈、队列、串、数组和矩阵)的顺序存储结构实际上就是使用数组来存储。可见,数组是其他数据结构实现存续存储结构的基础,数组这种数据结构是软件设计中最基础的数据结构。   二、数组的实现机制:数组通常以字节为计数单位,同时根据内存单元地址映像公式来分配内存。用高级语言定义数组时,数组在内存中的首地址由系统动态分配并保存。高级语言通常用数组名保存在内存中的首地址。一旦确定了一个数组的首地址,系统就可计算出该数组中任意一个数组元素的内存地址。由于计算数组各个元素内存地址的时间相等,所以存取数组中任意一个元素的时间也相等,通常称具有这种特性的存储结构为随机存储结构。所以说数组具有随机存储结构的特性。   三、在数值分析中,常常会出现一些拥有许多相同数据元素或零元素的高阶矩阵。将具有许多相同元素或者零元素,且数据分布具有一定规律的矩阵称为特殊矩阵,例如,对称矩阵、三角矩阵和对角矩阵。为了节省存储空间,需要对这类矩阵进行压缩存储。压缩存储的原则是:多个值相同的矩阵元素分配同一个存储空间,零元素不分配存储空间。对于对称矩阵、三角矩阵和对角矩阵来说,首先根据矩阵中任意一个元素与压缩后一位数组的下标的对应关系得到每一个数据元素在数组中存储的位置

【数据结构】数组和广义表

自作多情 提交于 2020-03-01 06:55:18
感觉数组这一段没讲什么太多的东西。 先是讲了下定义,就是每个维度上都有对应的前驱后继,首尾元素例外。操作只有初始化 销毁 取元素 修改元素。然后讲了下适合用顺序存储结构,多维情况下根据下标(j1 j2 j3 ... jn)找到对应像素的存储位置 c n = L, c i-1 = b i * c i, LOC = LOC基址 + Σc i j i , L为每个元素存储的单位。 然后给了些实现代码。 新知识是: va_start( , ); va_arg( , ); va_end(); 这三个可以用来处理变长参数表信息。 接着就是讲矩阵了。 首先是特殊矩阵的压缩。对于有规律的特殊矩阵,如对角矩阵、下(上)三角矩阵,对角矩阵。可以根据规律将矩阵存在一维数组中,建立起原始下标与压缩后矩阵下标的对应关系就好。 对没有规律的稀疏矩阵,只存储稀疏矩阵的非0元。需要三元组表存储(行、列、元素值)。根据三元组表的不同表示方式,得到稀疏矩阵不同的压缩存储方法。 ①三元组顺序表 以行序为主序排列。 就是用个数组存起来,行号小的放前面。 讲了下这种结构下转置的操作,关键讲了下如何在转置后以行为主排序。又讲了个快速转置,就是存储了原矩阵每一列首元素的位置和每一列元素个数,这样就不用在之后排序了,直接放在对的位置就好了。 ②行逻辑链接的顺序表,就是把每行第一个非0位置存了起来,为了方便抽取任意一行

「脚本」转置文件 & 第10行

霸气de小男生 提交于 2020-02-26 07:00:53
00194 转置文件 题目描述 给定一个文件 file.txt ,转置它的内容。 你可以假设每行列数相同,并且每个字段由 ' ' 分隔. 示例: 假设 file.txt 文件内容如下: name age alice 21 ryan 30 应当输出: name alice ryan age 21 30 力扣地址 https://leetcode.com/problems/transpose-file/ https://leetcode-cn.com/problems/transpose-file/ <!-- more --> 解题报告 采用 awk 命令行工具 NR是指awk正在处理的记录位于文件中的位置(行号) NF是指awk正在处理的记录包含几个域(字段),这于域分隔符有关,默认为空 [root@localhost ~ ]$ awk ' { for (i = 1; i <= NF; i++) { if(NR == 1) { s[i] = $i; } else { s[i] = s[i] " " $i; } } } END { for (i = 1; s[i] != ""; i++) { print s[i]; } }' file.txt name alice ryan age 21 30 题解答案 本题解由微信公众号 小猿刷题 提供, 错误之处, 欢迎指正. awk '{ for

矩阵的转置、逆与伴随运算的运算规律

耗尽温柔 提交于 2020-02-18 21:35:33
矩阵的转置、逆与伴随运算的运算规律有很大的相似之处,但也有不同,我将矩阵的转置、逆与伴随运算的运算规律总结如下。 另外,对一个矩阵进行多次转置、逆与伴随运算时,其结果与转置、逆与伴随运算的运算顺序无关。 来源: https://www.cnblogs.com/cloneycs/p/12328123.html

线代自学笔记

陌路散爱 提交于 2020-02-17 18:42:30
QwQ……不知不觉这么久没写过博客了 感觉自己线代好菜啊……准备这些天去听听 吉尔伯特爷爷的公开课 ,好好自学一下 大概看了看时间安排,感觉一天两节课正好够 为了方便督促自己,每天把笔记贴在这里好了 1.方程组的几何解释 每一个 \(n\) 元线性方程组都可以用矩阵表示。除此之外还可以对方程组做以下解释: 行图像:每个方程的解都可以表示为 \(n\) 维空间内的一个超平面,所有超平面的交就是整个方程组的解。 (对于系数矩阵可逆的情况,所有超平面的交应当恰好是一个点。) 列图像:把方程组的每一列都看成一个列向量,那么方程组就可以看成 \(n\) 个列向量线性组合形成对应的常数向量。方程组的解代表每个列向量对应的系数。 在不考虑求解方程组时,列图像的思考方向还会产生另一个问题:列向量的所有线性组合能否充满整个 \(n\) 维空间? 求解方程组的系统方法:消元法 2.矩阵消元 对于方程组 \(Ax=b\) ,可以用一系列初等变换将 \(A\) 变为上三角矩阵 \(U\) ,之后直接倒序回代即可得到整个方程组的解。通常称为高斯消元(Gauss Elimination)。 主元(pivot)不能为0。为了找到主元,可能还需要做一些行交换。 行列式等于主元之积 如果某一次无法找到任何主元,则说明此方程组无解或解不唯一,同时也说明 \(A\) 是奇异矩阵。

17-正交矩阵和Gram-Schmidt正交化

橙三吉。 提交于 2020-02-02 19:27:41
一、正交矩阵  定义:Orthogonal Matrix (必为方阵) 如果$A^TA=AA^T=I$,则$n$阶实矩阵$A$称为正交矩阵  性质:   1)$A^T$是正交矩阵   2)$A$的各行是单位向量且两两正交   3)$A$的各列是单位向量且两两正交   4)|A|=1或-1   举例: 二、标准正交矩阵的优势   1)求解投影矩阵    在 投影矩阵章节 我们已经知道投影矩阵为: $P=A\left(A^{T} A\right)^{-1} A^{T}$   当矩阵A为标准正交矩阵Q时 ,由于正交矩阵与其转置的乘积为单位矩阵,则上式可以转化为: $P=QQ^{T}$   这样就将投影矩阵简单化了。   2)求解$Ax=b$    在 投影矩阵章节 我们已经知道: $\hat{x}=\left(A^{T} A\right)^{-1} A^{T} b$    当矩阵A为标准正交矩阵Q时 ,由于正交矩阵与其转置的乘积为单位矩阵,则上式可以转化为: $\hat{x}=Q^{T} b$ 三、Gram-Schmidt正交化   1) 二维情况    假设原来的矩阵为[a,b],a,b为 线性无关的二维向量 ,下面我们通过Gram-Schmidt正交化获得 标准正交矩阵   假设正交化后的矩阵为Q=[A,B],我们可以令$A=a$,$B$垂直于$A$,根据我们 在 前面所讲的投影