How do I set counter = to a value when it is a persistent variable so if i reinitialize it each time through a loop it loses it purpose?
    9 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
function result = exp_average(a,varargin)
persistent avg counter;
if counter ==0
    counter =0;
end
if nargin ==1
    in1 = a 
    no = 1
end
if nargin ==2
    in1 = a
    in2 = b
    no = 2
end
if no ==1 && counter ==0
    b = 0.1;
    a = in1;
    avg = b * a+ (1-b)*avg;
    counter = counter +1'
end
if no == 2 && counter ==0
     clear exp_average;
     a = in1;
     b = in2;
     avg = b*a+(1-b)*avg;
     counter = counter+1;
end
if no ==1 && counter> 0
    a = in1;
    b = 0.1;
    avg = b*a+(1-b)*avg;
    counter= counter+1;
end
if no ==2 && counter>0
    clear exp_average;
    a = in1;
    b = in2;
    avg = b*a+(1-b)*avg;
    counter = counter+1;
end
end
How do I set counter = to a value when it is a persistent variable so if i reinitialize it each time thruugh a loop it loses it purpose? I need to feed "or" and "and" statement logical operators with who numbered values. I'm no so long as counter isn't initialized.
0 comentarios
Respuestas (1)
  Daniel kiracofe
      
 el 28 de Nov. de 2016
        I'm not sure if I understand the question. Here is my guess at what you are asking. If this isn't it, please restate the question.
Take a look at
https://www.mathworks.com/help/matlab/ref/persistent.html
The key line is " the persistent variable does not exist the first time you issue the persistent statement, it is initialized to the empty matrix."
So instead of
if counter ==0
    counter =0;
end
Try this instead
if (isempty(counter))
    counter =0;
end
Ver también
Categorías
				Más información sobre Argument Definitions en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!