首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中矩阵的两列乘法之和

R中矩阵的两列乘法之和
EN

Stack Overflow用户
提问于 2013-02-17 10:14:13
回答 3查看 13.2K关注 0票数 3

我使用下面的代码在R中生成一个矩阵,

代码语言:javascript
复制
ncolumns = 3
nrows = 10
my.mat <- matrix(runif(ncolumns*nrows), ncol=ncolumns)

此矩阵表示3D中点的坐标。如何在R中计算以下内容?

代码语言:javascript
复制
sum of x(i)*y(i)

例如如果矩阵是,

代码语言:javascript
复制
x y z
1 2 3
4 5 6

则输出= 1*2 + 4*5

我正在努力学习R,所以任何帮助都将不胜感激。

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-17 10:21:30

您正在寻找%*%函数。

代码语言:javascript
复制
ncolumns = 3
nrows = 10

my.mat <- matrix(runif(ncolumns*nrows), ncol=ncolumns)

(my.answer <- my.mat[,1] %*% my.mat[,2])

#       [,1]
# [1,] 1.519
票数 6
EN

Stack Overflow用户

发布于 2013-02-17 10:20:21

您只需执行以下操作:

代码语言:javascript
复制
#  x is the first column; y is the 2nd
sum(my.mat[i, 1] * my.mat[i, 2])

现在,如果要命名列,可以直接引用它们

代码语言:javascript
复制
colnames(my.mat) <- c("x", "y", "z")

sum(my.mat[i, "x"] * my.mat[i, "y"])

# or if you want to get the product of each i'th element 
#  just leave empty the space where the i would go
sum(my.mat[ , "x"] * my.mat[ , "y"])
票数 2
EN

Stack Overflow用户

发布于 2013-02-17 10:20:06

每一列都由[]中的第二个参数指定,因此

代码语言:javascript
复制
my_matrix[,1] + my_matrix[,2] 

就是你所需要的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14917323

复制
相关文章

相似问题

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