Persistent variable 'count' is undefined on some execution paths when using embedded matlab function

38 views (last 30 days)
I am using the embedded matlab function with constant 1 as the first input and a step signal as the second input (initial value to be 1 and then after a stepsize it becomes 0). The code for the matlab function is as follows:
function sys = fcn(u)
persistent count;
if u(2)>0
count=0;
else
count=count+0.01;
end
sys=u(1)+count;
end
The error shows that: Persistent variable 'count' is undefined on some execution paths**
When I changed the embedded matlab function to s function and used the same code again, there is no error. Why is this code not valid within the embedded matlab function? Thanks for the reply.

Accepted Answer

Image Analyst
Image Analyst on 4 Jan 2013
Edited: Image Analyst on 4 Jan 2013
If you enter the function with the second element of "u" less than zero, it's possible to execute the "count=count+.01" line, which may have count undefined is you never did the first part of the if block. I would think it would be a warning, not an error during editing time, but an actual error if you hit that line with count undefined during run-time.
And I don't know what an " s function" is, and I don't have the embedded toolbox so I don't know about your latter sentences.
Try it like this:
persistent count;
if isempty(count)
count = 0;
end
if u(2)>0
count=0;
else
count=count+0.01;
end
sys=u(1)+count;

More Answers (0)

Categories

Find more on Programming 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!