循环时的多条件(具有相同变量内的多个条件)

时间:2016-10-22 17:45:42

标签: arrays matlab while-loop iteration

这是基本设置。我正在尝试创建一个迭代循环,直到设置条件低于某个容差。但是,必须针对同一矩阵内的多个值推广此循环。一个例子(简化了我目前正在努力完成的事情):

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

我面临的问题是,只要函数中的1个值小于容差,while循环就会退出。我打算发生的是,while循环将继续迭代两个变量,直到两者都低于所需的容差。我无法有两个单独的循环,因为我将迭代的变量的大小未设置为2个值。

非常感谢任何形式的帮助。

1 个答案:

答案 0 :(得分:2)

Matlab有几个相关的函数anyall可以帮助解决这类问题。

any,如果任何元素真实,则会返回true,这将对您有所帮助:

while any(x>tolerance)
   ...
end

你也可以做其他技巧,比如

while sum(x>tolerance) > 0

实现同样的目标,但我喜欢语义清晰any