While loop if condition

3 visualizzazioni (ultimi 30 giorni)
Braden Kerr
Braden Kerr il 6 Nov 2020
Commentato: Braden Kerr il 6 Nov 2020
Hello,
I have a while loop that I want to run if two conditions are met. I have the while loop and the first condition written out and its below.
A(1,k) = .35; %guess value for alpha^0
epsi = .1;
sigma = 2;
xad = X(:,k)+A(1,k)*D(:,k);
left = fun(xad);
right = fun(X(:,k))+ A(1,k)*epsi*grad_fun(X(:,k))'*D(:,k);
A_2(1,j) = A(1,k);
while (left > right) || (
A_2(1,j+1) = A_2(1,j)/(sigma);
xad = X(:,k)+A_2(1,j+1)*D(:,k);
left = fun(xad);
right = F(1,k)+ (A_2(1,j+1)*epsi*D(:,k)')*D(:,k);
j= j+1;
end
However, I also want to add a condition for the while loop to run that if left is an imaginary number, to cycle through the loop.
Is this possible? Thank you

Risposta accettata

Sriram Tadavarty
Sriram Tadavarty il 6 Nov 2020
Hi Braden,
You can add these conditions in the while loop.
(~isreal(left)) % To check if left is a complex number
(imag(left) ~= 0) % If the check is only to ensure if there is an imaginary content, implies value could be complex
(imag(left) ~= 0 && real(left) == 0) % If the check is to ensure, it is only imaginary number
The usage of || or && depends on the condition, you wanted. If both the conditions to be met, then use &&. If either of conditions have to be met use ||.
Hope this helps.
Regards,
Sriram
  1 Commento
Braden Kerr
Braden Kerr il 6 Nov 2020
Yes, thank you, the top condiditon worked best for what I was trying to do

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by