2012-11-01 74 views
1

情况非常简单。我想创建一个n行m列的矩阵A,其中每个元素的值由预定的函数f(i, j)给出。什么是最优雅的方式来实现这一目标?根据行和列构造矩阵

+0

可能重复由R中的函数f(i,j)给出的元素矩阵](http://stackoverflow.com/questions/13081611/most-efficient-way-to-fill-out-a- matrix-of-elements-由功能fi-j-in) – mnel

+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 
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)