Azzera filtri
Azzera filtri

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

17 visualizzazioni (ultimi 30 giorni)
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.

Risposta accettata

Image Analyst
Image Analyst il 4 Gen 2013
Modificato: Image Analyst il 4 Gen 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;

Più risposte (0)

Categorie

Scopri di più su Programming in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by