Ich habe einen movie M mit 150 figures a neun subplots. Diesen movie möchte ich nun vorwärts, rückwärts, etc abspielen. Ich habe das ganze in einem movie gespeichert, da die Plots ziemlich groß sind und ne weile für den Aufbau brauchen.
ich habe mir also eine function mit einem slider programmiert:
% ---------------------------------------------------- % Get the value of the slider. function slider_callback(hObject,eventdata)
val = get(hObject,'Value');
h_plot=movie(fh,M,[1 val]);
end
damit malt er mir zwar die bildchen, aber ich bekomme immer die Fehlermeldung
??? One or more output arguments not assigned during call to "movie".
Error in ==> slider_gui>slider_callback at 47
h_plot=movie(fh,M,[1 val]);
??? Error while evaluating uicontrol Callback
Ich weiß, der Befehl "h_plot" ist für meine Zwecke nicht so geeignet, aber es war der einzige Weg, den ich finden konnte, dass überhaupt was gemalt wird. (der erste movie-Befehl vor der slider_callback-Definition ist fehlerfrei )
soweit ich weiss, liefert "movie" keinen Rückgabewert. Außerdem hast du hier (falls dies vollständig ist) in einer Funktionsdeklaration eine weitere Funktionsdeklaration. Das ist so leider nicht möglich (d.h. das letzte "end" gehört vor "function slider_callback").
Bei dem Problem im anderen Thread kann ich dir leider nicht helfen. Das sieht für mich eigentlich sauber aus. Mein erster Gedanke war vielleicht noch ein "drawnow" einzufügen, aber "waitforbuttonpress" macht dies eigentlich schon implizit.
Danke für die schnelle Antwort Die Funktion slider_gui müßte eigentlich so stimmen (also mit der Funktionsdefinition innerhalb einer anderen Funktion) Ich habe nämlich das ganze Ding aus der Matlabhilfe kopiert, und nur das
h_plot = movie(fh,M,[1, val]);
eingefügt. (heißt sogar in der Hilfe slider_gui)
Leider verstehe ich nicht, was du mit Rückgabe meinst. (Ich beschäftige mich erst seit gestern mit GUI's und brauche schnell dieses blö*** "Zurückspulen".) kann ich in callback nur Befehle mit Rückgabewerten auffrufen?
was muß ich statt h_plot schreiben, damit der mir den val-ten Plot aus meinem movie zeichnet?
Hach, irgendwie hatte ich mir das ganze einfacher vorgestellt klingt ja auch nicht so schwer: Wenn slider auf val-tem Wert steht, male val-tes Bild.
dann ist p der Rückgabewert. Bei plot ist das beispielsweise ein handle auf die gezeichnete Kurve. Der Befehl movie hat aber nun keinen Rückgabewert, das heißt, man kann nicht schreiben h = movie...
Meiner Meinung hatte ich das zwar schon ausprobiert, aber wahrscheinlich hatte ich dann irgendwo anders einen Fehler, so dass das nicht klappte, und ich es deshalb nicht nochmal versucht habe!
Hier nochmal der entgültige (endlich funktionierende ) Code:
val = 1;
movie(fh,M,[1 val]);
% ---------------------------------------------------- % Get the value of the slider. function slider_callback(hObject,eventdata)
val = get(hObject,'Value');
movie(fh,M,[1 val]);
end % ---------------------------------------------------- end
Hallo,
Außerdem hast du hier (falls dies vollständig ist) in einer Funktionsdeklaration eine weitere Funktionsdeklaration. Das ist so leider nicht möglich (d.h. das letzte "end" gehört vor "function slider_callback").
Tja, wieder was dazugelernt.
MfG
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.