0
我想創建N×N的維度的矩陣,其值R - 如何矢量化2d矩陣中的計算?
f = matrix(0,n,n)
for (x in (1:n)) {
for (y in (1:n)) {
f[x,y] = x^2 + y^2
}
}
有沒有辦法向量化這個(避免兩個迴路)來加快該計劃?
我想創建N×N的維度的矩陣,其值R - 如何矢量化2d矩陣中的計算?
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
完美,謝謝。 – tucson