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
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.
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;
Play games and win prizes!Learn more