情况非常简单。我想创建一个n行和m列的矩阵A
,其中每个元素的值由预定函数f(i, j)
给出。实现这一目标的最优雅方式是什么?
答案 0 :(得分:10)
您可以使用outer
:
outer(1:3,1:3,function(i,j) i^2+j)
[,1] [,2] [,3]
[1,] 2 3 4
[2,] 5 6 7
[3,] 10 11 12
答案 1 :(得分:0)
如果你提供了一个可重复的例子,那会有所帮助,但你可以这样做:
f <- function(i,j) i*j
m <- 4
n <- 2
out <- apply(expand.grid(1:m, 1:n), 1, function(x) f(x[1],x[2]))
dim(out) <- c(m,n)