矩阵转置

matlab基础知识

人走茶凉 提交于 2019-11-28 16:08:26
1.ceil(x):向上取整 floor(x):向下取整 2.round(x,y):保留小数点后y位 3.sign(x):判断正负,若为正,则为1;若为负,则为-1;若为0,则为0 4.conj(x):取x的共轭 abs(x):取模 real(x):取x的实部 imag(x):取x的虚部 angle(x):求复数矩阵相位角的弧度值 5.flipu(x):矩阵的第一行与最后一行进行互换 flipdim(x,dim):dim为1,表示每一列进行逆序排列;dim为2,表示每一行进行逆序排列 fliplr(x):实现矩阵沿垂直轴左右翻转 6.mean(x):mean函数是一个求数组平均值的函数 mean(x,dim):dim为1,求每一列的平均值;dim为2,求每一行的平均值 7.length(x):length(x)为数列的长度,即它里面有多少个元素.如果x0是矩阵的话,比方说M行N列,那么length返回M和N这两个数的最大值 8.[b0,ind]=sort(x):按列将矩阵排序,然后找出他们的位置 [b0,ind]=sort(x,2):按行将矩阵排序,然后找出他们的位置 9.dot(a,b):向量的点乘,ps:只能用于向量,不可以用于矩阵 cross(a,b):向量的×乘 10.[m,n]=size(a):求矩阵的行列,行为m,列为n 11.可以用;或者回车换行输入命令 12

余子式总结

我们两清 提交于 2019-11-28 13:46:39
行列式:gauss消元求。 余子式:去掉一行一列后,剩下的矩阵的行列式组成的矩阵。 代数余子式:余子式根据行列的奇偶性取相反数后的矩阵。 行列式等于 各个位置乘以代数余子式之和。 代数余子式的转置叫伴随矩阵。 伴随矩阵等于逆矩阵乘以行列式。 所以,一遍行列式,一遍逆矩阵,就能知道代数余子式。 进而知道修改某一位置后的行列式,以及删除一行一列后剩下的矩阵的行列式。 时间复杂度 \(O(n^3)\) 。 在一些生成树计数中有用。 来源: https://www.cnblogs.com/lnzwz/p/11409538.html

python 矩阵转置(day07_exercise2)

二次信任 提交于 2019-11-28 13:14:48
1 list04 = [ 2 [1,2,3,4], 3 [5,6,7,8], 4 [9,10,11,12], 5 [13,14,15,16] 6 ] 7 8 # 方法一 9 L = [] 10 11 for j in range(len(list04[0])): 12 L.append([]) 13 for i in range(len(list04)): 14 L[j].append(list04[i][j]) 15 16 # print(list04[i][j],end=' ') 17 18 print(L) 19 20 21 # 方法二 22 result = [] 23 for m in range(4): 24 lst = [] 25 result.append(lst) 26 for n in range(4): 27 lst.append(list04[n][m]) 28 print(result) 来源: https://www.cnblogs.com/xiaoliangliu86/p/11408618.html

卡尔曼滤波器

♀尐吖头ヾ 提交于 2019-11-28 10:46:38
假设有个小车在道路上向右侧匀速运动,我们在左侧安装了一个测量小车距离和速度传感器,传感器每1秒测一次小车的位置s和速度v,如下图所示。 我们用向量xt来表示当前小车的状态,该向量也是最终的输出结果,被称作状态向量(state vector): 由于测量误差的存在,传感器无法直接获取小车位置的真值,只能获取在真值附近的一个近似值,可以假设测量值在真值附近服从高斯分布。 如下图所示,测量值分布在红色区域的左侧或右侧,真值则在红色区域的波峰处。 由于是第一次测量,没有小车的历史信息,我们认为小车在1秒时的状态x与测量值z相等,表示如下: 公式中的1表示第1秒。 预测是卡尔曼滤波器中很重要的一步,这一步相当于使用历史信息对未来的位置进行推测。 根据第1秒小车的位置和速度,我们可以推测第2秒时,小车所在的位置应该如下图所示。 会发现,图中红色区域的范围变大了,这是因为预测时加入了速度估计的噪声,是一个放大不确定性的过程。 根据小车第一秒的状态进行预测,得到预测的状态xpre: 其中,Pre是Prediction的简称;时间间隔为1秒,所以预测位置为距离+速度*1;由于小车做的是匀速运动,因此速度保持不变。 在第2秒时,传感器对小车的位置做了一次观测,我们认为小车在第2秒时观测值为z2,用向量表示第2秒时的观测结果为: 很显然,第二次观测的结果也是存在误差的

[机器学习理论] 降维算法PCA、SVD(部分内容,有待更新)

人走茶凉 提交于 2019-11-28 10:45:47
几个概念 正交矩阵 在 矩阵论 中, 正交矩阵 (orthogonal matrix)是一个 方块矩阵 ,其元素为 实数 ,而且行向量与列向量皆为 正交 的 单位向量 ,使得该矩阵的 转置矩阵 为其 逆矩阵 : 其中, 为 单位矩阵 。正交矩阵的 行列式 值必定为 或 ,因为: 来源: https://www.cnblogs.com/likedata/p/11405547.html

numpy中矩阵

夙愿已清 提交于 2019-11-28 06:31:27
矩阵 Numpy中矩阵是ndarray的子类, 矩阵是二维的 Key_Function   1. 将字符串转为矩阵, 矩阵的行与行之间用分号隔开, 行间元素用空格隔开   2. 将Numpy的数组(如np.arange(9))转成矩阵 T属性: 获得矩阵的转置 I属性: 获得矩阵的逆矩阵 Code import numpy as np A = np.mat('1 2 3; 4 5 6; 7 8 9') print(A) ''' [[1 2 3] [4 5 6] [7 8 9]] ''' print(A.T) # 矩阵的转置 ''' [[1 4 7] [2 5 8] [3 6 9]] ''' print(A.I) # 矩阵的逆矩阵 ''' [[ -4.50359963e+15 9.00719925e+15 -4.50359963e+15] [ 9.00719925e+15 -1.80143985e+16 9.00719925e+15] [ -4.50359963e+15 9.00719925e+15 -4.50359963e+15]] ''' print(np.mat(np.arange(9).reshape(3, 3))) # 将ndarray转成矩阵 从已有的矩阵创建新矩阵 Key_Function np.eye函数, 创建单位矩阵 矩阵与标量相乘,

Python 数据科学-Numpy

谁说我不能喝 提交于 2019-11-28 04:50:48
NumPy Numpy :提供了一个在Python中做科学计算的基础库,重在数值计算,主要用于多维数组(矩阵)处理的库。用来存储和处理大型矩阵,比Python自身的嵌套列表结构要高效的多。本身是由C语言开发,是个很基础的扩展,Python其余的科学计算扩展大部分都是以此为基础。 高性能科学计算和数据分析的基础包 ndarray,多维数组(矩阵),具有矢量运算能力,快速、节省空间 矩阵运算,无需循环,可完成类似Matlab中的矢量运算 线性代数、随机数生成 使用以下语句导入 Numpy 库: import numpy as np NumPy 数组 创建数组 >>> a = np.array([1,2,3]) >>> b = np.array([(1.5,2,3), (4,5,6)], dtype = float) >>> c = np.array([[(1.5,2,3), (4,5,6)], [(3,2,1), (4,5,6)]], dtype = float) 初始化占位符 >>> np.zeros((3,4))# 创建值为0数组 >>> np.ones((2,3,4),dtype=np.int16)# 创建值为1数组 >>> d = np.arange(10,25,5)# 创建均匀间隔的数组(步进值) >>> np.linspace(0,2,9)# 创建均匀间隔的数组(样本数)

PCA的数学原理

↘锁芯ラ 提交于 2019-11-28 04:05:06
原帖地址: http://blog.codinglabs.org/articles/pca-tutorial.html PCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。网上关于PCA的文章有很多,但是大多数只描述了PCA的分析过程,而没有讲述其中的原理。这篇文章的目的是介绍PCA的基本数学原理,帮助读者了解PCA的工作机制是什么。 当然我并不打算把文章写成纯数学文章,而是希望用直观和易懂的方式叙述PCA的数学原理,所以整个文章不会引入严格的数学推导。希望读者在看完这篇文章后能更好的明白PCA的工作原理。 数据的向量表示及降维问题 一般情况下,在数据挖掘和机器学习中,数据被表示为向量。例如某个淘宝店2012年全年的流量及交易情况可以看成一组记录的集合,其中每一天的数据是一条记录,格式如下: (日期, 浏览量, 访客数, 下单数, 成交数, 成交金额) 其中“日期”是一个记录标志而非度量值,而数据挖掘关心的大多是度量值,因此如果我们忽略日期这个字段后,我们得到一组记录,每条记录可以被表示为一个五维向量,其中一条看起来大约是这个样子: 注意这里我用了转置,因为习惯上使用列向量表示一条记录(后面会看到原因),本文后面也会遵循这个准则

对角化

岁酱吖の 提交于 2019-11-28 00:24:43
对角化是指存在一个正交矩阵Q,使得 Q T MQ 能成为一个对角阵(只有对角元素非0)。 其中Q T 是Q的转置(同时也是Q的逆,因为正交矩阵的转置就是其逆)。 一个矩阵对角化后得到新矩阵的行列式和矩阵的迹(对角元素之和)均与原矩阵相同。如果M是n阶实对称矩阵,则Q中的第 j 列就是第 j 个特征值对应的一个特征向量(不同列的特征向量两两正交)。 来源: https://www.cnblogs.com/pacino12134/p/11382527.html

机器学习之ndarray笔记

删除回忆录丶 提交于 2019-11-27 22:15:20
Numpy的介绍 1. Ndarray:N-dimensional array, N维数组 2. 一种由相同类型的元素组成的多维数组,元素数量是事先指定好的 例:建立Ndarray多维数组 arr = np.array( [ [1,2,3,4], [2,3,4,5] ]) 这是一个二维数组arr.ndim为2 这个数组的形状arr.shape为(2, 4)即2行4列 这个数组的数据类型arr.dtype为int32 3. 元素的数据类型由dtype(data-type)对象来指定,每个ndarray只有一种dtype类型 例: np.array(['Python','cctv','ibeifeng','hello world'],dtype='|S4') 输出结果array([b'Pyth', b'cctv', b'ibei', b'hell'], dtype='|S4') 其中S4中的S表示字符串型,4表示每个字符串长度为4,所以输出结果每个数组只有4个字符 arr3 = np.array(['1','2','3','4'],dtype='int') # 表明arr3为整型 # 输出array([1, 2, 3, 4]) arr3 = np.array(['1','2','3','4'],dtype='float') # 表明arr3为浮点型 # 输出array([1., 2.,