2016-10-22 35 views
0

基本設定は次のとおりです。私は設定された条件が一定の許容差を下回るまで反復するwhileループを作成しようとしています。ただし、このループは同じ行列内の複数の値に対して一般化する必要があります。 (私は現在達成しようとしているものから、単純化)の例:複数条件whileループ(同じ変数内の複数条件付き)

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

私が直面しています問題は、関数の値の1が許容値未満であるとwhileループは、すぐに終了するということです。私が起こそうとしているのは、両方の変数が望ましい許容値を下回るまで、whileループが両方の変数を繰り返し処理し続けるということです。変数Iの反復処理のサイズが2の値に設定されていないため、私は2つの別々のループを持つことができません。

どんな種類のヘルプをいただければ幸いです。

答えて

2

Matlabには、この種のことを助ける2つの関連する関数、anyallがあります。要素のいずれかがtruthyある場合trueを返し

any、ここであなたを助ける:

while any(x>tolerance) 
    ... 
end 

あなたも同じことを達成するために

while sum(x>tolerance) > 0 

のような他のトリックを行うことができますが、私はどのように意味的に明確なanyが好きです。