【发布时间】:2020-01-14 15:48:59
【问题描述】:
我正在尝试计算 1000 个矩阵的 L2 条件数。但是,我正在为不同维度的矩阵执行此操作。例如,我正在计算 1000 个 5x5 矩阵的 L2 条件数,然后对 10x10 矩阵再次执行相同的操作,依此类推。
我已经解决了这个问题,但这里的问题是我有 5 个 for 循环来做同样的事情。我知道我可以通过嵌套的 for 循环来简化我的代码,但我不确定如何去做。我在下面附上了我的代码。
请注意,这些数字是根据矩阵的维度随机生成的。
#Set up for loops
set.seed(2019)
CN5 <- NULL
CN10 <- NULL
# First for loop for n = 5
## n = 5
for(i in 1:1000){
CN5[i] <- kappa(matrix(rnorm(25), nrow = 5))
}
mean(CN5)
sd(CN5)
median(CN5)
#Second for loop with n = 10
## n = 10
for(i in 1:1000){
CN10[i] <- kappa(matrix(rnorm(100), nrow = 10))
}
mean(CN10)
sd(CN10)
median(CN10)
如何组合这些循环以便我只有一个?
【问题讨论】:
-
经验法则是,如果您需要重复两次以上,请为此任务编写一个函数。
标签: r for-loop nested-loops