R语言矩阵、向量操作(矩阵乘法,向量内积、外积(叉乘),矩阵转置,矩阵的逆)

这篇具有很好参考价值的文章主要介绍了R语言矩阵、向量操作(矩阵乘法,向量内积、外积(叉乘),矩阵转置,矩阵的逆)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

创建两个四维矩阵 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)

输出如下:文章来源地址https://www.toymoban.com/news/detail-518302.html

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

到了这里,关于R语言矩阵、向量操作(矩阵乘法,向量内积、外积(叉乘),矩阵转置,矩阵的逆)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python求矩阵的内积、外积、克罗内克直积、Khatri-Rao积

    线性代数研究的核心对象是矩阵,所谓矩阵就是由 m m m 行 n n n 列的数组成的一个举行的数阵,从编程的角度理解,就是二维数组。 作为一种特殊的代数结构,需要为矩阵引入特殊的计算方法,其中矩阵加法、减法相对来说比较直观,而乘法比较复杂,矩阵乘法的定义为 (

    2024年02月08日
    浏览(25)
  • 【数据结构】数组和字符串(十):稀疏矩阵的链接存储:十字链表的矩阵操作(加法、乘法、转置)

    【数据结构】数组和字符串(一):矩阵的数组表示   矩阵是以按行优先次序将所有矩阵元素存放在一个一维数组中。但是对于特殊矩阵,如对称矩阵、三角矩阵、对角矩阵和稀疏矩阵等, 如果用这种方式存储,会出现大量存储空间存放重复信息或零元素的情况,这样会造

    2024年02月08日
    浏览(42)
  • 矩阵和向量的点乘与叉乘

    python语言 (9条消息) 矩阵和向量的点乘与叉乘_矩阵点乘_鸣谦12的博客-CSDN博客 一、矩阵 1)矩阵点乘——各个矩阵对应元素相乘 矩阵点乘中, 点乘对象的行数必须相等,且前者的列数必须与后者相等,或为1 。   numpy库中可使用运算符 * 或 multiply 函数计算。 2)矩阵叉乘——

    2024年01月25日
    浏览(28)
  • 点积、内积、外积、叉积、张量积——概念区分

    找 张量积 概念的时候,被各种野路子博客引入的各种“积”搞混了,下面仅以Wikipedia为标准记录各种积的概念。 https://en.wikipedia.org/wiki/Dot_product 在数学中,点积(Dot product)或标量积(scalar product)是一种代数运算,它取两个 相等长度的数字序列 (通常是坐标向量),并返回一个数

    2024年02月05日
    浏览(33)
  • 通过类实现矩阵加减法、乘法、转置(C++))

    定义一个二维方阵类 matrix 通过重载二元运算符“+”、“-”、“*”和一元运算符“~”, 来实现矩阵加、矩阵减、矩阵乘以及矩阵转置。 1.由于矩阵的行与列都是未知的,首先需要通过 动态分配内存 实现创建任意大小的矩阵,由于类中默认的构造函数无法满足我们的需求,

    2024年02月06日
    浏览(46)
  • 线性代数:矩阵运算(加减、数乘、乘法、幂、除、转置)

    目录 加减 数乘  矩阵与矩阵相乘  矩阵的幂 矩阵转置  方阵的行列式  方阵的行列式,证明:|AB| = |A| |B|        

    2024年01月22日
    浏览(34)
  • 稀疏矩阵(三元组)的创建,转置,遍历,加法,减法,乘法。C实现

    1.创建。 可以直接赋值字符串,但是为0的元素也要依次赋值,比较麻烦,但是容易理解也能实现。 其次也可以构思三元组赋值,只赋值非零元素和它的行,列数,在打印时进行if判断,没有赋值的就输出0,这样比较简单。 创建结构体时,一个矩阵需要有它的行总数和列总数

    2024年02月02日
    浏览(42)
  • 转置矩阵、对称矩阵、反对称矩阵以及向量的反对称矩阵

    假设矩阵 A 如下表示: 则其转置矩阵表示为: 若矩阵 B 与其转置矩阵相等,则称矩阵 B 为对称矩阵,如: 若矩阵 C 与其转置矩阵取负后相等,则称矩阵 C 为反对称矩阵,其对角线元素的值为0,如: 分别定义两个向量如下: 对两个向量进行叉乘得到: 则向量的反对称矩阵为

    2024年02月11日
    浏览(49)
  • MPI矩阵向量乘法

    完整的MPI矩阵向量乘法的算法,并在分布式环境下编译、排错、调试、运行、优化。 为方便矩阵的生成和计算结果的验证,可以通过自定义函数直接生成单位矩阵和元素全为1的向量用于计算。要特别注意注意C语言中传递二维数组给函数时,只能以一维数组的形式传递,并在

    2024年02月13日
    浏览(42)
  • MPI实现矩阵向量乘法

    (1)问题 MPI实现矩阵向量:Ab的乘积。其中A:100行100列,b为列向量。 (2)思路 将所有进程分为两部分,rank=0的进程为master节点,其余进程为worker节点。 master节点: (1)对A,b赋值,同时将b广播出去(这里涉及一个对广播这个函数不太熟悉的点) (2)对A进行划分,使其

    2024年02月11日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包