Coding the Matrix (3):矩阵
1. 矩阵与映射
矩阵和映射包含两方面的关系:
简单:已知矩阵 M, 从向量 x 映射到 M * x. (注:矩阵与行向量的点乘)
稍微复杂:已知映射 x -
>
M * x, 求矩阵 M。
第一种情况直接运算就可以得到映射,就不详细写了,着重写第二种情况。
首先,假设 x 为 n 维行向量, M*x 为 m 维列向量,可以知道 M 是 m × n 大小的矩阵。在点乘里面,M 的列向量是基向量, x 向量的每个分量是线性组合的系数,M 矩阵可以写成:
怎么求出 v1, v2, ..., vn 向量呢?利用基向量带入即可得到:
例一 :将一张图片向右拉伸两倍,即 (x, y) 变为了 (2x, y), 它的变换矩阵可以这样求:
求得的变换矩阵就是 M = (v1, v2)
例二 :将一张图片逆时针旋转 90 度,变换矩阵 M 可以这样求:
求得的变换矩阵也是 M = (v1, v2)
同样,将图像旋转 theta 角度和平移操作 (translation) 也可以用这个方法求出变换矩阵。
根据上述方法虽然可以求出图像平移的变换矩阵,但是如果我们将 [0, 0] 左边进行变换,发现原点还是在原点,并没有平移,结果显然是错误的,这是什么原因呢?这里就不得不说一说线性映射了。
2. 线性映射
线性映射需要满足两个条件:
首先,左乘矩阵肯定是一个线性映射。考虑上面的例子,图像伸缩、旋转都符合两个条件,而图像平移不符合,因此不是线性映射,不存在变换矩阵。更进一步,什么时候才是一一映射呢?当矩阵 M 是一个满秩矩阵,此时 M 可逆,该映射是一个 one-to-one and onto 的线性映射。
Coding the Matrix (3):矩阵的更多相关文章
- 【Python】Coding the Matrix:Week 5: Dimension Homework 5
这一周的作业,刚压线写完.Problem3 没有写,不想证明了.从Problem 9 开始一直到最后难度都挺大的,我是在论坛上看过了别人的讨论才写出来的,挣扎了很久. Problem 9在给定的基上分 ...
- [CareerCup] 1.7 Set Matrix Zeroes 矩阵赋零
1.7 Write an algorithm such that if an element in an MxN matrix is 0, its entire row and column are ...
- Coding the Matrix Week 1 The Vector Space作业
Coding the Matrix: Linear Algebra through Computer Science Applications 本周的作业较少,只有一个编程任务hw2.作业比较简单,如 ...
- Coding the Matrix作业Python Lab及提交方法
Coding the Matrix: Linear Algebra through Computer Science Applications 这是一门用python实现矩阵运算的课,第一次作业就感觉 ...
- css3 matrix 2D矩阵和canvas transform 2D矩阵
一看到“2D矩阵”这个高大上的名词,有的同学可能会有种畏惧感,“矩阵”,看起来好高深的样子,我还是看点简单的吧.其实本文就很简单,你只需要有一点点css3 transform的基础就好. 没有前戏,直 ...
- Leetcode 54:Spiral Matrix 螺旋矩阵
54:Spiral Matrix 螺旋矩阵 Given a matrix of m x n elements (m rows, n columns), return all elements of t ...
- bzoj 4128: Matrix ——BSGS&&矩阵快速幂&&哈希
题目 给定矩阵A, B和模数p,求最小的正整数x满足 A^x = B(mod p). 分析 与整数的离散对数类似,只不过普通乘法换乘了矩阵乘法. 由于矩阵的求逆麻烦,使用 $A^{km-t} = B( ...
- [LeetCode] Kth Smallest Element in a Sorted Matrix 有序矩阵中第K小的元素
Given a n x n matrix where each of the rows and columns are sorted in ascending order, find the kth ...
- [LeetCode] Set Matrix Zeroes 矩阵赋零
Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. click ...
随机推荐
- openwrt简单ipk生成及Makefile解释
前言 类似的文章其实网上比较多了,我写这个的目的: 1,网上文章良莠不齐,有些自己都没实际动手操作,随便复制粘贴,实际操作不可行. 2,基本只讲了操作,我当时最关心的Makefile文件的解释没有. ...
- UVA 11355 Cool Points(几何)
Cool Points We have a circle of radius R and several line segments situated within the circumference ...
- R语言与数据分析
K最近邻(k-Nearest Neighbor,KNN)分类算法 R语言实现包:R语言中有kknn package实现了weighted k-nearest neighbor. 决策树: R语言实现决 ...
- Azure 自动化里添加ResourceManager模块
最近想尝试通过Azure里的自动化功能来控制VM的定时开关机,找到网上的一篇文章, 按照文章操作到"Import Azure Resource manager module"的第 ...
- 使用jsonpath解析json内容
JsonPath提供的json解析非常强大,它提供了类似正则表达式的语法,基本上可以满足所有你想要获得的json内容.下面我把官网介绍的每个表达式用代码实现,可以更直观的知道该怎么用它. 一.首先需要 ...
- java如何连接testlink
1.下载相关的jar包 2.获取到testlink的url和key,注意:url不是testlink的连接地址,是连接地址+/lib/api/xmlrpc.php 3.测试是否连接成功 public ...
- 二分匹配之最大权值匹配算法---KM模板
百科:http://baike.baidu.com/link?url=vbM3H4XmfrsWfP-epdlR2sVKSNzOq4hXnWDqm5uo8fd7VWsF2SmhDV35XyVUDvVjv ...
- linux之间进程通信
进程间通信方式: 同主机进程间数据交换机制: pipe(无名管道) / fifo(有名管道)/ message queue(消息队列)和共享内存. 必备基础: f ...
- Hibernate之Query接口的uniqueResult()方法
如果查询返回多个值用list()方法 public void testQuery(){ Configuration config = new Configuration().configure(); ...
- java11-3 String类的获取功能
String类的获取功能 int length():获取字符串的长度. char charAt(int index):获取指定索引位置的字符 int indexOf(int ch):返回指定字符在此字 ...