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

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

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.

*No products are associated with this question.*

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;

## 0 Comments