Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将五个for循环简化为嵌套的for循环?_R_For Loop_Nested Loops - Fatal编程技术网

如何将五个for循环简化为嵌套的for循环?

如何将五个for循环简化为嵌套的for循环?,r,for-loop,nested-loops,R,For Loop,Nested Loops,我试图计算1000个矩阵的L2条件数。但是,我是针对不同维度的矩阵来做的。例如,我计算1000个5x5矩阵的L2条件数,然后再做同样的事情,但要计算10x10矩阵,以此类推 我已经完成了这个问题,但是这里的问题是我有5个for循环,它们做同样的事情。我知道我可以通过嵌套for循环来简化代码,但我不知道该怎么做。我在下面附上了我的代码 请注意,这些数字是根据矩阵的维数随机生成的 #Set up for loops set.seed(2019) CN5 <- NULL CN10 <-

我试图计算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)
#为循环设置
种子集(2019年)

CN5看起来你可以把这些放在同一个循环中:

for(i in 1:1000){
  CN5[i] <- kappa(matrix(rnorm(25), nrow = 5))
  CN10[i] <- kappa(matrix(rnorm(100), nrow = 10))  
}
for(1:1000中的i){

CN5[i]看起来你可以把这些放在同一个循环中:

for(i in 1:1000){
  CN5[i] <- kappa(matrix(rnorm(25), nrow = 5))
  CN10[i] <- kappa(matrix(rnorm(100), nrow = 10))  
}
for(1:1000中的i){

CN5[i]注释中建议的一般程序是,编写一个带有参数的函数,该参数考虑了不同迭代之间(或可能)的变化

从您的代码中,唯一变化的是方阵的维数
nxn

set.seed(2019年)

cn_function注释中建议的一般过程是,编写一个带有参数的函数,该参数考虑了不同迭代之间(或可能)的变化

从您的代码中,唯一变化的是方阵的维数
nxn

set.seed(2019年)

cn_函数经验法则是,如果你需要重复某件事两次以上,为该任务编写一个函数。经验法则是,如果你需要重复某件事两次以上,为该任务编写一个函数。