Unable to store the persistent variable
    3 views (last 30 days)
  
       Show older comments
    
I am trying to store two persistent variables in order to use them in further iterations. The problem is with the second variable 'weight'. It has a default value 0.1. Once I give a value to my function's 2nd argument, it should take this value.
The code is
function out =exp_average(in,b)
persistent average weight
if isempty(weight) %It does not already exist
weight = 0.1;
end
if isempty(average) 
    average=in;
elseif nargin<2
    average=weight*in+(1-weight)*average;
elseif nargin==2
    clear exp_average
    average=in;
    average=b*in+(1-b)*average;
    weight=b;
else
    error('WTF')
end
out=average;
end
When I give two arguments to my function, it want my persistent variable 'weight' take the value of the input argument 'b'. With this code it does not keep its value. Any help will be appreciated.
0 Comments
Accepted Answer
  Azzi Abdelmalek
      
      
 on 1 Sep 2016
        
      Edited: Azzi Abdelmalek
      
      
 on 1 Sep 2016
  
      function out =exp_average(in,b)
persistent average weight
if isempty(weight) %It does not already exist
 weight = 0.1;
 average=in;
end
if nargin==1
  average=weight*in+(1-weight)*average;
elseif nargin==2
  average=b*in+(1-b)*in;
  weight=b;
else
  error('WTF')
end
  out=average;
0 Comments
More Answers (0)
See Also
Categories
				Find more on Whos in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!