簡體   English   中英

R-如何向量化二維矩陣中的計算?

[英]R - How to vectorize the calculation in a 2d matrix?

我想用值創建一個nxn維矩陣

f = matrix(0,n,n)
for (x in (1:n)) {
    for (y in (1:n)) {
        f[x,y] = x^2 + y^2
    }
}

有沒有一種方法可以對此向量化(避免兩個循環)以加快程序速度?

你可以用outer

outer(x, y, function(x, y) x^2 + y^2)

例如

x <- 1:4
y <- 2:5
outer(x, y, function(x, y) x^2 + y^2)
     [,1] [,2] [,3] [,4]
[1,]    5   10   17   26
[2,]    8   13   20   29
[3,]   13   18   25   34
[4,]   20   25   32   41

那這個呢?

n <- 10
M <- matrix(rep(1:n,n), ncol=n, byrow=T)
f <- (M**2)+t((M**2))
f

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM