While loop for a stopping criterion and check if it positive

2 Ansichten (letzte 30 Tage)
Rémi BERNARD
Rémi BERNARD am 2 Sep. 2019
Kommentiert: Rémi BERNARD am 2 Sep. 2019
Hello everyone,
Sorry if the title is not clear enough, it is quite hard to put in to simple word. In the current Matlab code I am working on, I have a while loop of the type:
while and(X > eps1, Y > eps2) && count < it_max
%calculations
end
with X, Y the variables of interest; eps1, eps2 the stopping criterias. My problem is that eps1 and eps2 are positive, and X and Y can take negative values. However these must be positive and I would like to add a condition to make the while loop continue when X and Y are negative (without any absolute value function).
Thank you.

Antworten (1)

Image Analyst
Image Analyst am 2 Sep. 2019
I don't know why you don't want to use the abs() function but you can do it without it like this:
while ((X > eps1 && Y > eps2) || (X < eps1 && Y < eps2)) && count < it_max
%calculations
count = count + 1;
end
  1 Kommentar
Rémi BERNARD
Rémi BERNARD am 2 Sep. 2019
I give an example which is not my case but I think can illustrate it well. Let's say in this loop I can have viscosity, which cannot be negative but for computation purpose I say it can be.
So take eps = 0.1:
- if for a certain iteration, for example 5, I have my viscosity which is -0.06; with abs() my criteria is respected but the result is not physically acceptable. (ie Matlab accepts it but I don't)
- for iteration +1 I have viscosity = 0.05; so I would like to accept that result instead of the previous one.
Your code does more or less the same thing no?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Produkte


Version

R2014b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by