Update a variable within a function and recalculate

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?

 채택된 답변

Iain
Iain 2013년 5월 22일

0 개 추천

once you invert x, add the line...
y = fun(x);

댓글 수: 3

Thank you lain. I knew already that I could do that but I was wondering if there is any other solution. I would appreciate if you could suggest any other possible solutions.
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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by