首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过减去两个向量在R中创建一个矩阵

通过减去两个向量在R中创建一个矩阵
EN

Stack Overflow用户
提问于 2021-03-24 20:09:48
回答 3查看 69关注 0票数 0

我有两个向量,想在R中创建一个矩阵,从另一个中减去一个。

代码语言:javascript
复制
Vector1 <- c(1,2,3)
Vector2 <- c(2,3,4,5)

因此,得到的矩阵将具有三列四行。矩阵将是vector1减去vector2的每个顺序元素。例如,第一行将是vector1减去vector2的第一个元素(即(1-2)、(2-2)、(3-2))。第二行是vector1减去vector2的第二个元素(即(1-3)、(2-3)、(3-3)),依此类推。

实际上,向量要长得多。

EN

回答 3

Stack Overflow用户

发布于 2021-03-24 20:16:10

您可以使用outer

代码语言:javascript
复制
outer(-Vector2, Vector1, "+")
#t(outer(Vector1, Vector2, "-")) #Alternative
#     [,1] [,2] [,3]
#[1,]   -1    0    1
#[2,]   -2   -1    0
#[3,]   -3   -2   -1
#[4,]   -4   -3   -2
票数 1
EN

Stack Overflow用户

发布于 2021-03-24 20:16:15

这样如何:

代码语言:javascript
复制
t(sapply(Vector2, function(x) Vector1-x))
     [,1] [,2] [,3]
[1,]   -1    0    1
[2,]   -2   -1    0
[3,]   -3   -2   -1
[4,]   -4   -3   -2
票数 1
EN

Stack Overflow用户

发布于 2021-03-24 20:16:12

您可以使用matrix([elements], [number of rows], [number of columns])创建矩阵。矩阵的元素可以计算为Vector1 - rep(Vector2, length(Vector1)),其中repVector2的元素重复与‘Vector1’的长度相等的次数,这样您就可以得到您正在寻找的所有差异。

代码语言:javascript
复制
matrix(Vector1 - rep(Vector2, length(Vector1)), length(Vector2), length(Vector1))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66780726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档