这是基本设置。我正在尝试创建一个迭代循环,直到设置条件低于某个容差。但是,必须针对同一矩阵内的多个值推广此循环。一个例子(简化了我目前正在努力完成的事情):
x = [3; 2]
tolerance = [0,0]
iter = 0
while x > tolerance
x = x - 1;
iter = iter + 1;
end
我面临的问题是,只要函数中的1个值小于容差,while循环就会退出。我打算发生的是,while循环将继续迭代两个变量,直到两者都低于所需的容差。我无法有两个单独的循环,因为我将迭代的变量的大小未设置为2个值。
非常感谢任何形式的帮助。
答案 0 :(得分:2)
Matlab有几个相关的函数any
和all
可以帮助解决这类问题。
any,如果任何元素真实,则会返回true
,这将对您有所帮助:
while any(x>tolerance)
...
end
你也可以做其他技巧,比如
while sum(x>tolerance) > 0
实现同样的目标,但我喜欢语义清晰any
。