MATLAB Answers

# I am using a function and i want to update counter on each function call and use value of that counter for some condition.But every function call counter initialize to zero and if i use counter=counter+1 it always give counter =1 so how to do this?

25 views (last 30 days)
amit chatterjee on 26 May 2017
Commented: Jan on 27 May 2017
The variable counter value should be equal to number of times function call.

#### 0 Comments

Sign in to comment.

### Accepted Answer

Jan on 26 May 2017
The question might be more clear, if you post the relevant code. The reader cannot guess, what code causes the observed "every function call counter initialize to zero".
Either:
counter = 0;
for k = 1:100
counter = counter + 1;
disp(counter);
end
Or it might be a counter inside a function:
function Y = YourFcn(X)
persistent Counter
if isempty(Counter)
Counter = 0;
end
Counter = Counter + 1;
Y = sin(X + Counter);
Then the Counter is reset by "clear YourFcn".

#### 2 Comments

amit chatterjee on 27 May 2017
This new_code file contain some part of my code. I want to use X=1:14 for CNT==0 and for any other value of CNT i want to use swapped value of X but when i run this code it show undefined function or variable X_new.So how resolve this error.(also in the code CNT==0.)
Jan on 27 May 2017
It is not clear, what the code should do. A bold guess:
function Avg_SU = request_order(x)
persistent FirstRun
if isempty(FirstRun)
X = 1:14;
FirstRun = false;
else
z = (x == (1:14));
Xr = X(z);
n = numel(Xr);
X(z) = Xr(randperm(n,n));
end
%%some code for request order%%
Avg_SU=sum(avg_su_per_req)/100;
X is not used at all?!
But as long as I do not really undestand, what you want to solve, I would not trust this code.

Sign in to comment.

### More Answers (1)

MathReallyWorks on 26 May 2017
Hello Amit,
Keep your initialization on top of the code (i.e. outside of loop if any).
Check if it is in any loop which is causing it to initialize again.
counter=0
should be above the code (i.e. outside of loop)
and
counter=counter+1
should be inside the loop.
If you want a better answer, attach your code.

#### 0 Comments

Sign in to comment.

### Community Treasure Hunt

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

Start Hunting!

Translated by