While loop if condition
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Braden Kerr
le 6 Nov 2020
Commenté : Braden Kerr
le 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
0 commentaires
Réponse acceptée
Sriram Tadavarty
le 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
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!