Effacer les filtres
Effacer les filtres

Update a variable within a function and recalculate

2 vues (au cours des 30 derniers jours)
Giorgos Papakonstantinou
Giorgos Papakonstantinou le 22 Mai 2013
I have created the following function
function y=fun(x)
y=2*x;
if y<0
x=-x
end
and I would like to update the input argument x if x is negative so then it invokes again the function. How can I do that?

Réponse acceptée

Iain
Iain le 22 Mai 2013
once you invert x, add the line...
y = fun(x);
  3 commentaires
Iain
Iain le 22 Mai 2013
Theres a few things you can do.
I recommend, wherever possible, making sure that the input is correct before even getting to the actual business code. In this case x = abs(x);
Where that isn't possible, you can repeatedly call the function like that. And the last option is to place a while loop around your business code.
answer_invalid = true; keep_trying = true;
while keep_trying & answer_invalid
%business code here:
do some checks on the answer to see if it is valid, and update answer_invalid as needed. do some checks to make sure you haven't gotten stuck in an infinite loop and set keep_trying to false if so.
end
Giorgos Papakonstantinou
Giorgos Papakonstantinou le 22 Mai 2013
Modifié(e) : Giorgos Papakonstantinou le 22 Mai 2013

Connectez-vous pour commenter.

Plus de réponses (0)

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!

Translated by