Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

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

Asked by Qingbin on 4 Jan 2013

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.

0 Comments

Qingbin

Products

No products are associated with this question.

1 Answer

Answer by Image Analyst on 4 Jan 2013
Edited by Image Analyst on 4 Jan 2013
Accepted answer

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;

1 Comment

Qingbin on 6 Jan 2013

Thanks for the reply, I used the isempty function to initialize the count and it works.

Image Analyst

Contact us