矩阵转置

NumPy矩阵运算

落爺英雄遲暮 提交于 2020-01-27 04:35:21
矩阵初始化 import numpy as np m = np . zeros ( [ 3 , 5 ] ) # print ( m ) n = np . ones ( [ 3 , 5 ] ) print ( n ) 生成3X5的矩阵值为0,1; #生成随机数矩阵 mn = np . random . rand ( 3 , 5 ) #3行4列的0-1之间的随机数矩阵 print ( mn ) #单位矩阵 z=np.eye(4)#4行4列一条对角线为1的单位矩阵 print (z) 2,矩阵的元素运算 / 矩阵相加相减的条件 必须矩阵大小相等 eg: import numpy as np z = np . eye ( 4 ) #这是一个对角线为1的矩阵 print ( z ) n = np . ones ( [ 4 , 4 ] ) print (n) print ( z + n ) 矩阵数乘:一个数乘以整个矩阵 import numpy as np z = np . mat ( [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] , [ 7 , 8 , 9 ] ] ) z = 10 * z print ( z ) 矩阵所有元素求和 #这里区别sum(),和np.sum();sum()返回的是每一列的和组成的裂变,np.sum()返回矩阵和 import numpy as

单目视觉标定原理

时光怂恿深爱的人放手 提交于 2020-01-26 02:44:30
在计算机视觉中,通过相机标定能够获取一定的参数,其原理是基于三大坐标系之间的转换和摄像机的畸变参数矩阵。在实验中经常用张正友标定发,进行摄像机标定,获取到内参数矩阵和外参数矩阵以及畸变参数矩阵。在应用中要区分三者作用。这也是在程序中函数输入量。 一、三大坐标系 在计算机视觉中,利用图像中目标的二维信息获取目标的三维信息,肯定需要相机模型的之间转化。 1、图像坐标系 在计算机系统中,描述图像的大小是像素,比如图像分辨率是1240*768.也就就是以为图像具矩阵rows是1024,cols是768.那图像的原点是在图像的左上角。 以图像左上角为原点建立以像素为单位的直接坐标系u-v。像素的横坐标u与纵坐标v分别是在其图像数组中所在的列数与所在行数。这是像素坐标,而不是物理坐标,为了后续的模型转换,有必要建立图像坐标系。 图像坐标系是以图像中心为原点,X轴和u轴平行,Y轴和v轴平行。 dx和dy标示图像中每个像素在X轴和Y轴的物理尺寸,其实就是换算比例。比如图像大小是1024*768,图像坐标系x-y中大小为19*17.那么dx就是19/1024 . 则图像中的每个像素在u-v坐标系中的坐标和在x-y坐标系中的坐标之间都存在如下的关系: (上述公式中我们假设物理坐标系中的单位为毫米,那么dx的的单位为:毫米/像素。那么x/dx的单位就是像素了,即和u的单位一样都是像素) 为了使用方便

深度学习入门整理学习(二)

我是研究僧i 提交于 2020-01-26 01:08:08
深度学习入门 深度学习横跨矩阵论、概率论与数理统计、信息论、博弈论、最优化等理论,并融合机器学习、数据挖掘、大数据、人工智能等领域技术,是具有深度和广度的综合范例 数学基础 矩阵论 (1)正交矩阵 A为n阶方阵 如果矩阵A和矩阵A的转置矩阵相乘结果为n阶单位矩阵 正交矩阵在矩阵变换、对角化等方面发挥重要的作用。 (2)矩阵的行列式 矩阵A的行列式定义为 n为该排列的逆序数,k1,k2,k3…kn为自然数1,2,3…n的任一排列。上式有n!项求和,如果|A|不为0,则表示A为可逆矩阵(也称为非退化矩阵),此时存在唯一的n阶方阵B,使得AB=E,则记作B=A-1。 (3)矩阵的迹 矩阵A的迹定义为正对角线元素的和 (4)向量与矩阵求导 梯度方向是函数f(X)在X处增长最快的方向,即函数变化率最大的方向。 ①行向量元素求导 ②列向量对元素求导 ③矩阵对元素求导 都是对每个元素进行求导 概率论 ​ 数学期望 方差 (1)0-1分布 p p(1-p) (2)二项分布 np np(1-p) (3)泊松分布 λ λ (4)几何分布 1/p (1-p)/p2 (5)均匀分布 (a+b)/2 (a-b)2/12 (6)指数分布 λ 1/λ2 (7)正态分布 μ σ2 (8)χ2分布 n 2n 机器学习基础 (1)监督学习 主要解决分类、回归的问题 (2)无监督学习 ① 数据聚类 聚类中

WebGL Matrix4(4*4矩阵库)

為{幸葍}努か 提交于 2020-01-25 09:33:18
Matrix4是由<<WebGL编程指南>>作者写的提供WebGL的4*4矩阵操作的方法库,简化我们编写的代码。源代码共享地址,点击链接: Matrix4源代码 。 下面罗列了Matrix4库的所有方法: 1.setIdentity() 将Matrix4实例初始化为单位阵 2.setTranslate(x, y, z) 将Matrix4实例设置为平移变换矩阵,在x轴上平移的距离为x,在y轴上平移的距离为y,在z轴上平移的距离为z 3.setRotate(angle, x, y, z) 将Matrix4实例设置为旋转变换矩阵,旋转角度为angle,旋转轴为(x, y, z)。旋转轴(x,y,z)无需归一化 4.setScale(x, y, z) 将Matrix4实例设置为缩放变换矩阵,在三个轴上的缩放因子分别为x、y、z 5.translate(x, y, z) 将Matrix4实例生意一个平移变换矩阵(该平移矩阵在x轴上的平移距离为x,在y轴上的平移距离为y,在z轴上的平移距离为z),所得到的结果存储在Matrix4中 6.rotate(angle, x, y, z) 将Matrix4实例乘以一个旋转变换矩阵(该旋转矩阵旋转的角度为angle,旋转轴为(x、y、z)。旋转轴(x、y、z)无须归一化),所得的记过还存储在Matrix4中 7.scale(x, y, z)

关于Unity中Shader的使用

你离开我真会死。 提交于 2020-01-22 19:08:44
在游戏的开发过程中,程序员不太会自己去写shader,因为写起来很麻烦,而且只有Unity会报错,编译器也没有什么提示。 通常是拿别人的shader改一改,当然,程序员还是要能看懂和会一点shader Unity坐标系转换 1: transform.localToWorldMatrix 局部转世界的矩阵; 2: transfrom.worldToLocalMatrix 世界坐标转局部坐标矩阵;  MultiplyPoint, MultiplyPoint3x4 MultiplayVector 来进行坐标变换; 4: shader中 左乘_World2Object矩阵来实现世界坐标转局部坐标变换; 5: shader中左乘_Object2World矩阵来实现局部转世界的转换; 6: UNITY_MATRIX_MV 基本变换矩阵 x 摄像机矩阵; 7: UNITY_MATRIX_MVP 基本变换矩阵x摄像机矩阵x投影矩阵; 8: UNITY_MATRIX_V 摄像机矩阵; 9: UNITY_MATRIX_P 投影矩阵; 10: UNITY_MATRIX_VP摄像机矩阵x投影矩阵; 11: UNITY_MATRIX_T_MV (基本变换矩阵 x 摄像机矩阵) 转置矩阵; 12: UNITY_MATRIX_IT_MV(基本变换矩阵 x 摄像机矩阵) 的逆转置矩阵; 13: UNITY

【数据分析与科学计算可视化】numpy 和 matplotlib库总结

让人想犯罪 __ 提交于 2020-01-21 14:01:51
一、numpy库 numpy:科学计算包,支持N维数组运算、处理大型矩阵、成熟的广播函数库、矢量运算、线性代数、傅里叶变换、随机数生成,并可与C++/Fortran语言无缝结合。树莓派Python v3默认安装已经包含了numpy。 另: scipy:scipy依赖于numpy,提供了更多的数学工具,包括矩阵运算、线性方程组求解、积分、优化、插值、信号处理、图像处理、统计等等。 1.扩展库numpy简介 导入模板:(交换式) >>>import numpy as np 2.numpy库应用于数组 (1)简单数组的生成 >>>import numpy as np #把列表转化为数组 >>> np.array([0,1,2,3,4]) array([0, 1, 2, 3, 4])>>>np.array((0,1,2,3,4)) # 元组转化为数组array([0, 1, 2, 3, 4]) >>>np.array(range(5)) # 把range对象转换成数组 array([0, 1, 2, 3, 4]) >>>np.array([[1,2,3,4,],[5,6,7,8]]) #二维数组 array([[1, 2, 3, 4], [5, 6, 7, 8]]) >>>np.arange(8) # 类似于内置函数range() array([0,1,2,3,4,5,6,7]) >>

Numpy学习50例

拥有回忆 提交于 2020-01-20 14:58:37
基础部分 1、导入numpy模块 import numpy as np 2、查看numpy版本信息 print(np.__version__) numpy的主要对象的多维数组Ndarray。Numpy中维度(dimensions)叫做轴(axis),轴的个数叫做秩。 3、通过列表创建一位数组 np.array([1, 2, 3]) 4、通过列表创建一个二维数组 np.array([(1, 2, 3),(4, 5, 6)]) 5、创建全为0的二维数组 np.zeros((3,3)) 6、创建全为1的三维数组 np.ones((2,3,4)) 7、创建一维等差数组 np.arange(5) 8、创建二维等差数组 np.arange(6).reshape(2,3) 9、创建二维单位矩阵 np.eye(3) 10、创建等间隔一维数组(1到10之间,共6个数,数字之间间隔相同) np.linspace(1, 10, num=6) 11、创建二维随机数组 np.random.rand(2,3) 下面说明一下random模块中的一些常用函数的用法 numpy.random.rand(d0, d1, ..., dn):生成一个[0,1)之间的随机浮点数或N维浮点数组。 numpy.random.randn(d0, d1, ..., dn):生成一个浮点数或N维浮点数组,取数范围

Python_矩阵转置

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-19 22:27:56
矩阵转置:行变列,列变行 算法:列元素放到新列表的行 list01 = [ [ 1 , 2 , 3 , 4 ] , [ 5 , 6 , 7 , 8 ] , [ 9 , 10 , 11 , 12 ] ] # 转置 list02 = [ ] for c in range ( len ( list01 [ 0 ] ) ) : line = [ ] for r in range ( len ( list01 ) ) : line . append ( list01 [ r ] [ c ] ) list02 . append ( line ) # 打印成表格 for line in list02 : for item in line : print ( item , end = "\t" ) print ( ) 运行结果 1 5 9 2 6 10 3 7 11 4 8 12 来源: CSDN 作者: Rookie_Max 链接: https://blog.csdn.net/Rookie_Max/article/details/104044832

Machine Learning Andrew Ng -5. Octave Tutrial (Matlab)

我是研究僧i 提交于 2020-01-18 23:40:44
5.1 Basic operations 5.2 Moving data around 5.3 Computing on data 5.4 Plotting data 5.5 For while if statement and functions 5.6 Vectorization 看过前两节课后,觉得matlab语言貌似和octave没差, 因此第五节学习打算利用matlab进行学习 基本操作 ???怎么代码块都是一个颜色??```matlab 识别不出来??丑… >> 5 + 6 ans = % matlab命令行中 ans 就是这个样子,占地方就占地方吧,不愿修改格式qaq 11 >> 3 - 2 ans = 1 >> 5 * 8 ans = 40 >> 2^6 ans = 64 >> 1 == 2 %false ans = 0 >> 1 ~= 2 %true [注] 这里不等于写作 ~= 而不是 != (区别于其他编程语言) ans = 1 >> 1 && 0 %AND ans = 0 >> 1 || 0 %OR ans = 1 >> xor(1,0) ans = 1 变量 >> a = 3 a = 3 >> a = 3; % semicolon ";" supressing output 不输出a >> b = 'hi'; >> c = (3 >= 1); >> c c

线性代数学习笔记——矩阵

陌路散爱 提交于 2020-01-17 23:39:25
1.引出 在利用Gauss消元法求解线性方程组的过程中,参与运算的只是其中的系数和常数项,将这些系数和常数项写成"表格"的形式来表示求解的过程,于是引入矩阵的概念。 2.定义 矩阵及其初等行变换  ①矩阵 ( a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋮ ⋮ a s 1 a s 2 ⋯ a s n ) (1) \left( \begin{matrix} a11 &a12 &\cdots &a1n \\ a21 &a22 &\cdots &a2n \\ \vdots &\vdots &\vdots &\vdots \\ as1 &as2 &\cdots &asn \end{matrix} \right)\tag{1} ⎝ ⎜ ⎜ ⎜ ⎛ ​ a 1 1 a 2 1 ⋮ a s 1 ​ a 1 2 a 2 2 ⋮ a s 2 ​ ⋯ ⋯ ⋮ ⋯ ​ a 1 n a 2 n ⋮ a s n ​ ⎠ ⎟ ⎟ ⎟ ⎞ ​ ( 1 ) a ij 称为矩阵的 元素 。元素为实数的矩阵称为 实矩阵 ,元素为复数的矩阵称为 复矩阵 。如果s=n,则(1)式中的矩阵称为 n阶矩阵 或 n阶方阵 两个矩阵完全相同时(行数相同,列数相同,对应元素相同),称他们 相等 两个或两个以上矩阵,行数相同,列数相同,称它们为 同型矩阵  ②初等行变换