多条件While循环(在同一变量中有多个条件)



基本设置如下。我试图创建一个while循环,迭代直到设置条件低于一定的容忍度。然而,这个循环必须推广到同一矩阵中的多个值。一个例子(从我目前试图完成的简化):

x = [3; 2]
tolerance = [0,0]
iter = 0
while x > tolerance
x = x - 1;
iter = iter + 1;
end

我面临的问题是,只要函数中的一个值小于容差,while循环就会退出。我想要发生的是,while循环将继续在两个变量上迭代,直到它们都低于所需的容差。我不能有两个单独的循环,因为我要迭代的变量的大小没有设置为2个值。

Matlab有几个相关的函数,anyall,可以帮助处理这种事情。

any,如果任何元素为真,则返回true,将在这里帮助您:

while any(x>tolerance)
   ...
end

你也可以使用其他技巧,比如

while sum(x>tolerance) > 0

实现同样的事情,但我喜欢any的语义清晰。

最新更新