2016-10-22 44 views
0

以下是基本设置。我正在尝试创建一个while循环,它将迭代,直到设置的条件低于某个容差。然而,这个循环必须在同一个矩阵内的多个值上推广。一个例子(从什么我正在试图完成简化):多条件while循环(在同一变量内具有多个条件)

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

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

任何形式的帮助将不胜感激。

回答

2

Matlab有几个相关的功能,anyall帮助这种事情。

any,返回true如果任何元素都truthy,将帮助你在这里:

while any(x>tolerance) 
    ... 
end 

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

while sum(x>tolerance) > 0 

来达到同样的事情,但我喜欢语义上的清晰any是。