繁体   English   中英

在没有for循环的情况下在R中填充函数求值矩阵

[英]Populating a matrix of function evaluations in R without for-loop

我想生成一个矩阵,其值是对具有两个参数的函数的求值。

到目前为止,以下是我想要的,但我怀疑在R中有一个更好的方法,不使用for循环。

x <- c(0.01, 0.1,1,10,100)
n <- length(x)
M <- matrix(NA, nrow=n, ncol=n)
for (i in 1:n){
 for (j in 1:n){
  M[i,j]<-x[i]^x[j]
 }
}

使用outer功能:

> outer(x,x,"^")
          [,1]      [,2]  [,3]  [,4]   [,5]
[1,] 0.9549926 0.6309573 1e-02 1e-20 1e-200
[2,] 0.9772372 0.7943282 1e-01 1e-10 1e-100
[3,] 1.0000000 1.0000000 1e+00 1e+00  1e+00
[4,] 1.0232930 1.2589254 1e+01 1e+10 1e+100
[5,] 1.0471285 1.5848932 1e+02 1e+20 1e+200
> identical(M,outer(x,x,"^"))
[1] TRUE

您可以使用函数名称或运算符的引用名称。 另请注意,我测试outer的答案与循环中的答案相同。 总是测试!

使用outer功能:

outer(x,x,"^")

          [,1]      [,2]  [,3]  [,4]   [,5]
[1,] 0.9549926 0.6309573 1e-02 1e-20 1e-200
[2,] 0.9772372 0.7943282 1e-01 1e-10 1e-100
[3,] 1.0000000 1.0000000 1e+00 1e+00  1e+00
[4,] 1.0232930 1.2589254 1e+01 1e+10 1e+100
[5,] 1.0471285 1.5848932 1e+02 1e+20 1e+200

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM