Update a variable within a function and recalculate
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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?
0 comentarios
Respuesta aceptada
Iain
el 22 de Mayo de 2013
once you invert x, add the line...
y = fun(x);
3 comentarios
Iain
el 22 de Mayo de 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
el 22 de Mayo de 2013
Editada: Giorgos Papakonstantinou
el 22 de Mayo de 2013
Más respuestas (0)
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!