how to define a variable used one time in function

if i have a function with a variable x=1 defined in side that function and the variable is increased by a formula and that function is called many times from another function , the question is how can make that variable x defined in side the function is set only at the first call and after the other calls it will not effect or set to 1 again , or in another meaning how to define a variable used one time in function , please do not tell me to define x=1 out of function body because the program that i worked on not allowed .
for example :
Function ABC()
x=1;
x=x+Pi;
end

답변 (2개)

Mischa Kim
Mischa Kim 2014년 3월 14일
편집: Mischa Kim 2014년 3월 14일
ALAA, you can define x to be a global variable. Alternatively, you could use
function xnew = ABC(x)
...
xnew = x + Pi;
end
to return the new value of x to the calling function.

댓글 수: 1

Maria
Maria 2014년 3월 14일
편집: Maria 2014년 3월 14일
Dear Mischa Many thanks
actually the main function had not called from any other function , actually I am working on simulink/matlab and the function is in function block (s-function ) and that function connected with robot model so it outputs variables to the model , actually i want to make random obstacles defined inside function block but the obstacles returned to their first location after the first feedback between model and function because i defined first obstacles locations in side function then i moved them randomly by rand(), so after second call they return to first locations due to first definitions of their locations inside function , so any suggestion
Ex:
function t=ABC ()
obstacle= [2 4];
obstacle(1)=obstacle(1)+rand() * 0.02; obstacle(2)=obstacle(2)+rand() * 0.03;

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

Walter Roberson
Walter Roberson 2014년 3월 14일
persistent x
if isempty(x); x = 1; else; x = x + 1; end

카테고리

도움말 센터File Exchange에서 Environment and Settings에 대해 자세히 알아보기

질문:

2014년 3월 14일

답변:

2014년 3월 14일

Community Treasure Hunt

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

Start Hunting!

Translated by