矩阵

PyTorch学习笔记:PyTorch初体验

不想你离开。 提交于 2019-12-05 21:15:38
PyTorch学习笔记:PyTorch初体验 一、在Anaconda里安装PyTorch 1、进入虚拟环境mlcc 2、安装PyTorch 二、在PyTorch创建张量 1、启动mlcc环境下的Spyder,导入PyTorch,查看版本号 2、使用pytorch创建张量 创建一个未初始化的3×5矩阵: 创建一个随机初始化的3×5矩阵: 创建一个零元素的长整型3×5矩阵: 创建一个元素皆为1的浮点型3×5矩阵: 直接由数据(列表)创建张量: 但是基于元素类型不一致的列表创建张量是要报错的: 全是字符串构成的列表,基于它创建张量也要出错: 基于已有的张量创建新的张量: 获取张量的尺寸(元组): 获取张量的元素: 获取张量的行: 获取张量的列: 三、张量的操作 张量与数量进行算术运算(逐个元素): 张量与张量(同阶)进行算术运算(逐个元素): 张量与张量进行矩阵运算: 来源: CSDN 作者: howard2005 链接: https://blog.csdn.net/howard2005/article/details/102590728

一、稀疏数组

拥有回忆 提交于 2019-12-05 20:43:29
稀疏数组 基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 如下图所示: 稀疏数组的处理方法: 记录数组一共有几行几列,有多少个不同的值; 把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模; 稀疏数组转换思路 二维数组转稀疏数组思路: 遍历原始的二维数组,得到有效数据的个数sum 根据sum可以创建稀疏数组sparseArr[sum+1] [3] 将二维数组的有效数据存入到稀疏数组 稀疏数组转二维数组思路: 先读取稀疏数组的第一行,根据第一行的数据,创建原始的二维数组 再读取稀疏数组后几行的数据,并赋值给原始的二维数据即可 代码实现 二维数组 转 稀疏数组 public class SparseArray { public static void main(String[] args) { //创建一个二维数组 11*11 int arr[][] = new int[11][11]; arr[1][2] = 1; arr[3][4] = 2; //先将原始数组打印出来 System.out.println("原始二维数组为:"); for (int[] row : arr) { for (int data : row) { System.out.print(data + " "); } System.out

PCL1.8.1 质心与协方差矩阵

六月ゝ 毕业季﹏ 提交于 2019-12-05 20:36:55
#include <pcl/point_types.h> #include <pcl/io/ply_io.h> #include <pcl/common/centroid.h> int main() { pcl::PointCloud<pcl::PointXYZ> cloud; pcl::io::loadPLYFile("cube.ply", cloud); // Placeholder for the 3x3 covariance matrix at each surface patch 协方差矩阵 Eigen::Matrix3f covariance_matrix; // 16-bytes aligned placeholder for the XYZ centroid of a surface patch Eigen::Vector4f xyz_centroid; // Estimate the XYZ centroid 质心 pcl::compute3DCentroid(cloud, xyz_centroid); // Compute the 3x3 covariance matrix pcl::computeCovarianceMatrix(cloud, xyz_centroid, covariance_matrix); std::cout << xyz_centroid

二维数组的查找

谁说我不能喝 提交于 2019-12-05 20:34:49
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 题解 : 由于二维数组数从左到右递增,从上到下递增,那么,我们可以考虑从左下角查找,如果val大于array[i][j]的话,j++,如果小于a[i][j]的话,i--,否则输出true表示找到了val; 如果到最后都没有找到,说明不存在该元素,返回false:表示没有该元素。 参考代码 : 1 class Solution { 2 public: 3 bool Find(int target, vector<vector<int> > array) { 4 // array是二维数组,这里没做判空操作 5 int rows = array.size(); 6 int cols = array[0].size(); 7 int i=rows-1,j=0;//左下角元素坐标 8 while(i>=0 && j<cols){//使其不超出数组范围 9 if(target<array[i][j]) 10 i--;//查找的元素较少,往上找 11 else if(target>array[i][j]) 12 j++;//查找元素较大,往右找 13 else 14 return true;/

关于方程的解

一曲冷凌霜 提交于 2019-12-05 18:20:38
满秩矩阵:如果矩阵的秩等于行数,则行满秩,并且行线性无关,如果矩阵的秩等于列数,则为列满秩,并且列线性无关。也就是说:对于 AX=O , rank ( A,O ) =n ,即有唯一解,因为 rank(A) 永远等于 rank(A,O), 但是解全为零,这也就说明了,线性无关。(其中 A 为系数矩阵, X 为向量, O 为向量。 n 为 A 的列数) 对于 AX=0 ,其中 A 为矩阵, X 为向量, 0 为向量。 如果最后一列不动的话,永远是 rank(A)=rank(A,0), 当 rank(A)=rank(A,0)=n 时,有唯一解,但是全为零,当 rank(A)=rank(A,0)<n 时,有无穷多的解,也就是说对于 AX=0, 来说,要么无解,要么有无穷的解。 对于 AX=B ,其中 A 为矩阵, X 为向量, B 为向量。 无解: rank(A)<rank(A,B) 有唯一解: rank(A)=rank(A,B)=n 有无穷多的解: rank(A)=rank(A,B)<n 如果我写错了,欢迎给我指出来。 来源: https://www.cnblogs.com/zijidefengge/p/11939416.html

4X4矩阵键盘

橙三吉。 提交于 2019-12-05 17:58:22
个人认为作为一个电子爱好者,这种小东西还是自己做的好些。 链接:https://pan.baidu.com/s/1toEvuZ8yU264oj-kJKHHDw 提取码:r9hu 来源: https://www.cnblogs.com/wangwenji/p/11938766.html

线性代数之——对角化和伪逆

不问归期 提交于 2019-12-05 17:58:11
这部分我们通过选择更好的基底来产生更好的矩阵。当我们的目标是对角化矩阵时,一个选择可以是一组特征向量基底,另外一个选择可以是两组基底,输入基底和输出基底是不一样的。这些左右奇异向量是矩阵四个基本子空间中标准正交的基向量,它们来自于 SVD。 事实上,所有对 \(A\) 的分解都可以看作是一个基的改变。在这里,我们只关注两个突出的例子,有一组基的 \(\Lambda\) 和有两组基的 \(\Sigma\) 。 \(S^{-1} AS=\Lambda\) 如果输入和输出基都是 \(A\) 的特征值。 \(U^{-1} AV=\Sigma\) 如果这些基分别是 \(A^TA\) 和 \(AA^T\) 的特征值。 只有当 \(A\) 是方阵并且有 \(n\) 个不相关的特征向量时,我们才能将其对角化成 \(\Lambda\) 。而通过 SVD,任意矩阵都可以对角化成 \(\Sigma\) 。如果一个矩阵是对称的、反对称的或者正交的,那么有 \(A^TA=AA^T\) ,在这种情况下,奇异值是特征值的绝对值,上面的两个对角化形式除了一个 \(-1\) 或者 \(e^{i\theta}\) 的因子外是相同的。 另外,注意 Gram-Schmidt 分解 \(A=QR\) 只选择了一个新的基底,也就是通过 \(Q\) 给出的输出正交基,而输入基底则是标准基由 \(I\) 给出

均值、方差、协方差、协方差矩阵、特征值、特征向量

末鹿安然 提交于 2019-12-05 17:55:02
均值: 描述的是样本集合的中间点。 方差: 描述的是样本集合的各个样本点到均值的距离之平均,一般是用来描述一维数据的。 协方差: 是一种用来度量两个随机变量关系的统计量。 只能处理二维问题。 计算协方差需要计算均值。 如下式: 方差与协方差的关系 方差是用来度量单个变量 “ 自身变异”大小的总体参数,方差越大表明该变量的变异越大 协方差是用来度量两个变量之间 “协同变异”大小的总体参数,即二个变量相互影响大小的参数,协方差的绝对值越大,则二个变量相互影响越大。 协方差矩阵: 协方差矩阵能处理多维问题; 协方差矩阵是一个对称的矩阵,而且对角线是各个维度上的方差。 协方差矩阵计算的是不同维度之间的协方差,而不是不同样本之间的。 样本矩阵中若每行是一个样本,则每列为一个维度,所以计算协方差时要 按列计算均值 。 如果数据是3维,那么协方差矩阵是: 特征值与 特征向量 线性变化: 线性变换 (线性映射)是在作用于 两个向量空间之间的函数 ,它保持 向量加法和标量乘法 的运算,从一个向量空间变化到另一个向量空间。 实际上线性变换表现出来的就是一个矩阵 。 特征值和特征向量 是一体的概念: 对于一个给定的线性变换(矩阵A),它的特征向量 ξ 经过这个线性变换之后,得到的新向量仍然与原来的 ξ 保持在同一條直線上,但其长度也许會改变。一个特征向量的长度在该线性变换下缩放的比例(λ)称为其特征值

矩阵的初等变换

隐身守侯 提交于 2019-12-05 17:54:57
矩阵变换是线性代数中矩阵的一种运算形式。 在 线性代数 中,矩阵的 初等变换 是指以下三种变换类型 : (1) 交换矩阵的两行(对调i,j,两行记为ri,rj); (2) 以一个非零数k乘矩阵的某一行所有元素(第i行乘以k记为ri×k); (3) 把矩阵的某一行所有元素乘以一个数k后加到另一行对应的元素(第j行乘以k加到第i行记为ri+krj)。 类似地,把以上的“行”改为“列”便得到矩阵初等变换的定义,把对应的记号“r”换为“c”。 矩阵的初等行变换与初等列变换合称为矩阵的初等变换(来源百度百科) 矩阵的初等变换 行阶梯形矩阵 行最简形 来源: https://www.cnblogs.com/julyzqy/p/11938650.html