Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
R:运行while循环,直到向量的所有元素都小于阈值_R_Loops_Vector_While Loop_Logical Operators - Fatal编程技术网

R:运行while循环,直到向量的所有元素都小于阈值

R:运行while循环,直到向量的所有元素都小于阈值,r,loops,vector,while-loop,logical-operators,R,Loops,Vector,While Loop,Logical Operators,在R中,我希望while循环继续,直到特定向量“theta_diff”(在每次迭代中在while循环中更新)中的每个元素降低到特定阈值“epsilon”以下。 目前,我可以通过在while循环测试条件中使用OR条件来实现这一点(theta_diff是一个2元素向量): 我想知道是否有更聪明的方法来做到这一点?我尝试了all(),但它实现了AND逻辑而不是OR逻辑,因此即使其中一个theta_diff元素满足条件,while循环也会停止 while(all(theta_diff>epsilo

在R中,我希望while循环继续,直到特定向量“theta_diff”(在每次迭代中在while循环中更新)中的每个元素降低到特定阈值“epsilon”以下。 目前,我可以通过在while循环测试条件中使用OR条件来实现这一点(theta_diff是一个2元素向量):

我想知道是否有更聪明的方法来做到这一点?我尝试了all(),但它实现了AND逻辑而不是OR逻辑,因此即使其中一个theta_diff元素满足条件,while循环也会停止

while(all(theta_diff>epsilon))
{
  }

搜索更智能选项的主要灵感在于:根据程序的不同,θ(u)差向量的维数可能会发生变化,我想使while循环条件独立于θ(u)差向量的长度。

我可以想出两个选项(至少一个
theta_diff
元素大于
epsilon
):

  • any(theta\u diff>epsilon)
  • max(theta_diff)>epsilon
类似地,以下两个是等效的(θ_diff的所有元素都大于ε):

  • all(theta\u diff>epsilon)
  • min(theta_diff)>epsilon

有时使用
重复
比在时使用
更具可读性。为什么不考虑:

repeat {
  ## blablabla
  if (all(theta_diff > epsilon)) break
  }
也就是说,做……直到……

repeat {
  ## blablabla
  if (all(theta_diff > epsilon)) break
  }