假设我正在运行以下循环(尝试为y实现收敛)
j=1
maxiter=10
for (j<maxiter) {
y[j]=y[j-1]+1 (#just to take an e.g of newton raphson method)
j=j+1
}
我想运行此循环500次并将y的结果值放在矩阵中。更具体地说,如果我正在运行算法并且我想运行算法500次,我该怎么做?
答案 0 :(得分:0)
首先,你似乎正在混淆'for loops'和'while loops'
通过给出要使用的值集合来使用'for循环',例如, for(i in 1:10)将运行10次,每次循环从1到10逐步改变i的值
只要条件满足,'while循环'将无限运行,例如
i=1
while(i<10) i=i+1
这将运行9次,导致i == 10.
如上面的评论中所示,可能有更有效的方法来实现您的目标,但为了与原始代码保持一致,您需要这样的内容:
j=1
y=1 # Whatever starting value you think appropriate for your convergence.
while(j<500) y[j+1]=y[j]+1
这将创建一个值向量(虽然在这种情况下不收敛)。