how to define a variable used one time in function

2 次查看(过去 30 天)
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 中查找有关 Block Libraries 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by