R不使用循环填充矩阵

问题描述 投票:0回答:1

大家好,我正在寻找一些编码建议和技巧。我有一个像这样的10x10矩阵:

mat <- matrix(NA, nrow = 10, ncol = 10)

和一个函数,它接受两个数字并返回一个简单的标量:

fct <- function(x1, x2){
return(x1 * x2)
}

我的功能有点复杂,但这只是为了说明目的。

我想通过将函数fct应用于两个向量来填充矩阵垫,让我们说:

x1 <- c(1:10)
x2 <- c(1:10)

我可以通过循环轻松完成它,但我想知道是否有人知道更好的方法,也许使用mapply / Map。

谢谢你的帮助!

r loops matrix apply mapply
1个回答
0
投票

像这样向量化函数:

fct <- function(x1, x2){
out <- numeric(length = length(x1))
for(i in seq_along(x1)) {
    out[i] <- x1[i] * x2[i]
 }
return(out)
}

然后应用外部:

outer(x1, x2, fct)

会做的!

谢谢!

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.