r语言矩阵向量操作(矩阵乘法,向量内积外积(叉乘),矩阵转置,矩阵的逆)(代码片段)

Z.Q.Feng Z.Q.Feng     2023-03-15     609

关键词:

文章目录


前言

创建两个四维矩阵 A 与 B,A 按列填充,B 按行填充

A <- matrix(1:16, 4, 4, byrow = FALSE)
B <- matrix(1:16, 4, 4, byrow = TRUE)

创建两个 n 维向量 x 和 y

x <- c(1, 2, 3, 4, 5)
y <- c(2, 4, 6, 8, 10)

求矩阵、向量转置

使用 t(矩阵、向量名) 即可:

t(A) == B

输出如下:

> t(A) == B
     [,1] [,2] [,3] [,4]
[1,] TRUE TRUE TRUE TRUE
[2,] TRUE TRUE TRUE TRUE
[3,] TRUE TRUE TRUE TRUE
[4,] TRUE TRUE TRUE TRUE

矩阵乘法

使用 %*% 符号即可:

A %*% B

输出如下:

> A %*% B
     [,1] [,2] [,3] [,4]
[1,]  276  304  332  360
[2,]  304  336  368  400
[3,]  332  368  404  440
[4,]  360  400  440  480

求矩阵、向量内积

在R语言中,两个矩阵、向量的内积并不只是简单的 * 号就完事了,而是有以下两种求法:

t(A) %*% B

或者

crossprod(A, B)
crossprod(x, y)

其结果如下:(注意区分于矩阵乘法)

> t(A) %*% B
     [,1] [,2] [,3] [,4]
[1,]   90  100  110  120
[2,]  202  228  254  280
[3,]  314  356  398  440
[4,]  426  484  542  600
> crossprod(A, B) # 这里为A的每行向量与B的每行向量做内积(点乘)
     [,1] [,2] [,3] [,4]
[1,]   90  100  110  120
[2,]  202  228  254  280
[3,]  314  356  398  440
[4,]  426  484  542  600
> crossprod(x, y)
     [,1]
[1,]  110

求向量外积(叉乘)

对应符号为 %o% 或使用 outer() 函数:

x %o% y
outer(x, y)

输出如下:

> x %o% y
     [,1] [,2] [,3] [,4] [,5]
[1,]    2    4    6    8   10
[2,]    4    8   12   16   20
[3,]    6   12   18   24   30
[4,]    8   16   24   32   40
[5,]   10   20   30   40   50
> outer(x, y)
     [,1] [,2] [,3] [,4] [,5]
[1,]    2    4    6    8   10
[2,]    4    8   12   16   20
[3,]    6   12   18   24   30
[4,]    8   16   24   32   40
[5,]   10   20   30   40   50

也可使用 x %*% t(y) 或者 tcrossprod(x, y)


求矩阵的逆

R语言的 solve(A, b) 函数可以求解线性方程组 Ax=b,直接使用 solve(A) 即可求解矩阵 A 的逆:

> C = matrix(c(1, 2, -1, -3), 2, 2, byrow = TRUE)
> solve(C)

输出如下:

> D <- solve(C)
> C %*% D
     [,1] [,2]
[1,]    1    0
[2,]    0    1

变换矩阵

一.坐标变换:缩放、平移、旋转1.缩放其中Sc是缩放比例2.平移3.旋转3.1二维坐标系旋转   3.2三维坐标系旋转    二.向量变换(旋转、平移)  1.向量2.向量的内积3.向量的外积      4.向量的性质补充  ... 查看详情

向量点乘(内积),叉乘(外积)

向量点乘(内积)白话:每个对应的值依次相乘然后想相加,是一个标量,也是二向量的模相乘后再乘以夹角的余弦值性质:如果两个向量垂直则点积为0,因为cos90°=0,反之不是,如果零向量与任何向量的点积都是0也就是说两... 查看详情

矢量叉乘,向量外积

...ff0c;向量外积1.矢量叉乘定义2.模长3.方向4.坐标运算6.叉乘矩阵(斜对称矩阵)6.叉乘运算规则1.矢量叉乘定义定义两个向量a\\mathbfaa和b\\mathbfbb,他们的叉乘可以写为a×b\\mathbfa 查看详情

pytorch之线性代数

参考技术A矩阵Tensor的初始化矩阵的元素运算是指矩阵在元素级别的加、减、乘、除运算。(1)元素相加和相减。条件:矩阵的行数和列数必须相同。数学公式:(2)矩阵数乘:一个数乘以一个矩阵。数学公式:(3)矩阵所有... 查看详情

spark中的矩阵乘法源码分析

前言:  矩阵乘法在数据挖掘/机器学习中是常用的计算步骤,并且在大数据计算中,shuffle过程是不可避免的,矩阵乘法的不同计算方式shuffle的数据量都不相同。通过对矩阵乘法不同计算方式的深入学习,希... 查看详情

数理知识向量数乘,内积,外积,matlab代码实现(代码片段)

...,内积,外积,matlab代码实现2【数理知识】矩阵普通乘积,哈达玛积,克罗内克积,点乘,点积,叉乘,matlab代码实现文章目录1.向量基本形式2.向量的数乘3.向量的内积4.向量的外积Ref1.向量基... 查看详情

向量叉乘和反对称矩阵

反对称矩阵反对称矩阵将二个定义在同一个坐标系的向量叉乘运算转换为矩阵和向量的乘法运算。已知向量$v=[x1,y1,z1]$,根据v构造的反对陈矩阵(skew-symmetricmatrix)为\\[A=\\beginbmatrix0&z_1&y_1\\\\z_1 查看详情

[python系列-15]:人工智能-数学基础-5-向量内积(点乘)和外积(叉乘)概念及几何意义

作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing本文网址:https://blog.csdn.net/HiWangWenBing/article/details/119322764TBD。。。。。。。。。。。。。。。。https://www.cnblogs.com/gxcdream/p/7597865.html作者主 查看详情

p1224[noi2013]向量内积(矩阵乘法&随机化)(代码片段)

P1224[NOI2013]向量内积(矩阵乘法&随机化)当k=2k=2k=2时考虑维护前i−1i-1i−1个向量的前缀和。将其与第iii个向量进行求内积,若不等于k−1k-1k−1,则必然存在第iii项与其内积为000满足条件,然后就暴力找即可... 查看详情

python矩阵相乘(代码片段)

目录1引言2Python里向量和矩阵的概念3 矩阵相乘——Python4Python矩阵相乘举例说明4.1对位乘积举例说明4.2矩阵乘法4.3向量内积1引言矩阵相乘分为叉乘和点乘,叉乘就是矩阵的乘法,指矩阵A的第一行乘以矩阵B的第一列,... 查看详情

矩阵计算矩阵乘法其一:基础符号和算法(代码片段)

矩阵符号矩阵操作向量符号向量操作Saxpy算法Gaxpy算法外积矩阵分割和冒号符号矩阵-矩阵乘法复数矩阵矩阵符号如果用表示所有实数的集合,那么我们用表示所有的实数矩阵组成的向量空间,即:其中,大写字母(如)表示矩阵... 查看详情

矩阵计算矩阵乘法其一:基础符号和算法(代码片段)

矩阵符号矩阵操作向量符号向量操作Saxpy算法Gaxpy算法外积矩阵分割和冒号符号矩阵-矩阵乘法复数矩阵矩阵符号如果用表示所有实数的集合,那么我们用表示所有的实数矩阵组成的向量空间,即:其中,大写字母&#... 查看详情

矩阵计算矩阵乘法其一:基础符号和算法(代码片段)

矩阵符号矩阵操作向量符号向量操作Saxpy算法Gaxpy算法外积矩阵分割和冒号符号矩阵-矩阵乘法复数矩阵矩阵符号如果用表示所有实数的集合,那么我们用表示所有的实数矩阵组成的向量空间,即:其中,大写字母&#... 查看详情

向量基础回顾

1.内积和外积向量内积(点乘):a.b=x1*y1+x2*y2 其中a(x1,x2)b(y1,y2)结果是标量一个数值向量外积(叉乘):a×b=|a|*|b|*sin 结果是一个向量(矢量),按右手法则判断。2. Cauchy–Schwarzinequality柯西施瓦兹不等式,其中<u,... 查看详情

向量点乘叉乘、矩阵、opengl变化

参考技术A向量:向量就是在3D笛卡尔坐标中的一个顶点。单位向量就是长度为1的向量、标量:标量是一个只有数值大小没有方向,部分有征服之分。通俗来说标量只有大小没有方向的量。向量和标量的区别就是向量是有方向的... 查看详情

矩阵和向量乘法,输出不正确的乘积

】矩阵和向量乘法,输出不正确的乘积【英文标题】:Matrixandvectormultiplication,outputtingincorrectproduct【发布时间】:2017-03-0318:47:07【问题描述】:我创建了一个向量和矩阵类,我正在尝试执行诸如矩阵和向量的乘法、矩阵和矩阵的... 查看详情

r语言之基础

参考技术A向量是R语言中最基本的数据类型,在R中没有单独的标量(例如1本质上是c(1))。R中可以用=或者<-来进行赋值,<-的快捷键是alt+-。R的下标是从1开始的,和python等不同(python四从0开始的)当然我们也可以用逻辑进... 查看详情

格拉姆矩阵(grammatrix)详细解读

目录基础知识-向量的内积Grammatrix介绍Grammatrix的应用-风格迁移一、基础知识-向量的内积1.1向量的内积定义:也叫向量的点乘,对两个向量执行内积运算,就是对这两个向量对应位一一相乘之后求和的操作,内积的结果是一个标... 查看详情