Unable to store the persistent variable

조회 수: 2 (최근 30일)
Astrik
Astrik 2016년 8월 31일
편집: Azzi Abdelmalek 2016년 9월 1일
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.

채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2016년 9월 1일
편집: Azzi Abdelmalek 2016년 9월 1일
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개)

카테고리

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

태그

Community Treasure Hunt

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

Start Hunting!

Translated by