Hi,
vielleicht war das schonmal hier, aber ich habe nach mehreren Stunden googlen nichts gefunden was hilft. Ich will einfach nur eine Variable in meiner TimerFcn verwenden.
Ich habe mal ein Beispiel dazu getippt:
Code:
text1 = 'Nachricht';
t = createtimer;
start(t);
function t = createtimer()
t = timer;
t.TimerFcn = @showstuff;
t.Period = 2;
t.StartDelay = 1;
t.ExecutionMode = 'fixedRate';
end
In Matlab hat jede Funktion ihren eigenen WorkSpace, also einen lokalen Satz von Variablen. Wenn Du eine Variable im CommandWindow (Base-Workspace) oder in einer Funktion definierst, ist sie deshalb noch lange nicht im Callback des Timers sichtbar.
Es gibt verschiedene Lösungen in Abhängigkeit davon, was das Ziel ist. Z.B. kannst Du eine "nested function" für den Callback verwenden:
Code:
function t = createtimer()
t = timer;
t.TimerFcn = @showstuff;
t.Period = 2;
t.StartDelay = 1;
t.ExecutionMode = 'fixedRate';
Hi Jan, vielen Dank für die Hilfe. Im Beispiel hat es geklappt.
Allerdings funktioniert die Anwendung trotzdem nicht; ich bekomme den gleichen Fehler wie vorher. Liegt es vielleicht daran, dass ich ein Bild übergebe? Hier die Anwendung: Der Timer soll alle 2s den Inhalt der Bounding Box in einer Figure anzeigen.
Code:
% Create the face detector object.
faceDetector = vision.CascadeObjectDetector;
% Create the webcam object.
cam = webcam();
% Capture one frame to get its size.
videoFrame = snapshot(cam);
frameSize = size(videoFrame);
% Create the video player object.
videoPlayer = vision.VideoPlayer('Position', [100100[frameSize(2), frameSize(1)]+30]);
Die nested function würde ich ungern verwenden, da noch mehr Code dazu kommt und ich befürchte dass es unübersichtlich wird. Die Bounding Box BB muss ich wohl auch zu UserData hinzufügen?!
Hattest Du schon erwähnt, welchen fehler Du bekommst? Eine Kopie der vollständigen Meldung wäre hilfreich...
Zitat:
Die Bounding Box BB muss ich wohl auch zu UserData hinzufügen?!
Klingt logisch. Versuche es mal ;-)
Gruß, Jan
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.