필터 지우기
필터 지우기

how to define a variable used one time in function

조회 수: 3 (최근 30일)
Maria
Maria 2014년 3월 14일
답변: Walter Roberson 2014년 3월 14일
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

카테고리

Help CenterFile Exchange에서 Event Functions에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by