2012-11-01 104 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)