goMatlab - Mein MATLAB Forum

Mein MATLAB Forum

 
Login  | Registrieren
Bücher:

Digitale Signalverarbeitung mit MATLAB

Fachkräfte:
Softwareentwickler MATLAB/Simulink (w/m)
Erarbeitung von Lösungen im Bereich der Schnittstelle zum Simulink-Modell und der Benutzeroberfläche von TargetLink
dSPACE GmbH - Paderborn

Testingenieur (w/m) Testframework für Simulink-basierte Echtzeitanwendungen
Pflege des MATLAB/Simulink-Testframeworks, Spezifizieren von Testkriterien, Testfällen und Testszenarien
dSPACE GmbH - Paderborn

Testingenieur (w/m) Konfigurationswerkzeuge für Echtzeitsysteme
Einbinden von Simulink®-Simulationsmodellen, Verteilung der Simulationsmodelle auf Multicore- und Multiprozessorsysteme
dSPACE GmbH - Paderborn

Berechnungsingenieur/in – Fahrzeugregelung und Betriebsstrategie
Entwurf und Modellierung von Betriebsstrategien und Regelungen
Schaeffler Technologies AG & Co. KG - Herzogenaurach

Berechnungsingenieur/in - Modellierung Hybridisierung
Definition von Modellstrategien für Konzept-, Verhaltens- und Detailmodelle
Schaeffler Technologies AG & Co. KG - Herzogenaurach

weitere Angebote

Partner:




Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Animiertes Gif mit Matlab

 

nschlange
Moderator
Moderator


Beiträge: 1306
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 08.08.2008, 14:51     Titel: Animiertes Gif mit Matlab
  Antworten mit Zitat      
Hier ein kurzes Beispiel, wie ein animiertes Gif mit Matlab erstellt werden könnte:
Alle benutzten Dateien sind im Anhang.
Die Funktion movie2gif stammt von hier: http://user.it.uu.se/cgi-bin/cgiwra.....ountUtils.cgi?movie2gif.m

Code:
clear all;
clc;
fid=fopen('test.txt');
C=textscan(fid,'%f %f','HeaderLines',1);
fclose(fid);
C=[C{:}];
f=figure;
xlim( [ min(C(:,1)) max(C(:,1)) ]);
ylim( [ min(C(:,2)) max(C(:,2)) ]);
grid on;
title('Schlange');
hold on;

for k=1:length(C)
    h(k)=line(C(k,1),C(k,2),'Marker','o','MarkerEdgeColor','r','Visible','off');
end
m=1;
for k=2:1:length(C)-1
    set(h,'Visible','off');
    set(h(k-1),'Visible','on');
    set(h(k),'Visible','on');
    set(h(k+1),'Visible','on');
    F(m) = getframe(gcf);
    m=m+1;
end

movie2gif(F,'test.gif','delaytime',0.2,'loopcount',inf);

gcf sorgt dafür, dass auch die Beschriftung mitkommt.

test.gif
 Beschreibung:

Download
 Dateiname:  test.gif
 Dateigröße:  21.28 KB
 Heruntergeladen:  619 mal
test.txt
 Beschreibung:

Download
 Dateiname:  test.txt
 Dateigröße:  192 Bytes
 Heruntergeladen:  537 mal
movie2gif.m
 Beschreibung:

Download
 Dateiname:  movie2gif.m
 Dateigröße:  2.21 KB
 Heruntergeladen:  832 mal

_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden


Idefix_1024
Forum-Century
Forum-Century

Beiträge: 230
Anmeldedatum: 16.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2009, 16:07     Titel:
  Antworten mit Zitat      
scheinbar funktioniert der gegebene Link leider nicht mehr... und auch die Anweisung C=[C{:}] mag Matlab bei mir nicht

verstehe auch grad ned warum...

würde mich aber schon interessieren die Thematik

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2009, 16:13     Titel:
  Antworten mit Zitat      
Gibts denn eine Fehlermeldung?
Code:
C=[C{:}]
sollte funktionieren, wenn C eine (nichtverschachtelte) Cell ist, die nur Zahlen enthält.
 
Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2009, 16:20     Titel:
  Antworten mit Zitat      
Ein neuer Link zu movie2gif.m und anderem:
http://www.csc.kth.se/~steng/freeware.html
 
Idefix_1024
Forum-Century
Forum-Century

Beiträge: 230
Anmeldedatum: 16.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2009, 16:33     Titel:
  Antworten mit Zitat      
Fehlermeldung:

??? Error using ==> horzcat
CAT arguments dimensions are not consistent.

mit den { } anweisungen bin ich scheinbar ein wenig eingerostet... ich kann ned so recht verstehen was da nicht klappt
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2009, 17:16     Titel:
  Antworten mit Zitat      
Vermutlich sind nicht alle Zeilen oder alle Spalten von dem, was da in eine Matrix umgewandelt werden soll, gleich lang.

Das Beispiel von nschlange funktioniert bei mir. Im übrigen war die Funktion movie2gif ja oben auch noch angehängt.

Vielleicht postest du mal Code, dass man sieht welcher Befehl mit welchen Daten den Fehler verursacht.
 
Idefix_1024
Forum-Century
Forum-Century

Beiträge: 230
Anmeldedatum: 16.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2009, 17:43     Titel:
  Antworten mit Zitat      
ok

war mein Fehler...
das txt ist aus welchem Grund auch immer statt in Spalten in Zeilen angelegt worden beim ersten Versuch...

nun klappts auch bei mir

danke für die schnelle Hilfe!
manchmal ist es schon eine Hilfe wenn man weiß es geht bei einem anderen Anwender problemlos ;-)
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.04.2009, 15:51     Titel: HILFE ANIMATION
  Antworten mit Zitat      
sagt mal kann man auch ein animiertes GIF in ne GUI laden...
ja das geht:
http://www.gomatlab.de/viewtopic,p,20754.html#20754
nur wie kann ich das GIF ständig laufen lassen und nebenbei den restlichen programm-code ausführen????
 
denny
Supporter
Supporter


Beiträge: 2601
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2007b, R2009b
     Beitrag Verfasst am: 18.04.2009, 18:47     Titel:
  Antworten mit Zitat      
Hallo,

steuere Animation über timer-objekt, dann läuft die Animation in Hintergrund
schau dazu zuerst die Hilfe an:
Code:

doc timer
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.04.2009, 17:01     Titel:
  Antworten mit Zitat      
danke für die antwort mit dem timer, sitze gerade dran, nur irgendwie führt er trotzdem erstmal nur den timer aus und nicht mein restliches skript. is bis jetzt wie folgt aufgebaut:

Code:

handles.t = timer('Name','Timer_Movie','TimerFcn',@timer_movie_fcn,'Period', 0.01,'ExecutionMode','fixedRate','TasksToExecute',5);
 


dann wird über einem button der timer gestartet
Code:

start(handles.t)
 


und die timer_fcn sieht so aus
Code:

function timer_movie_fcn(obj, event, string_arg)
    global mov smiley
    movie(smiley,mov)
 


in mov ist die animation und smiley ist ein axes handle.
noch ne andere frage muss ich z.B. mov etc global wählen oder kann ich das nicht mit dem funktionsaufruf übergeben. in
Code:
obj, event

werden soweit ich das gesehen habe die Timereigenschaften übergeben
 
Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.04.2009, 11:06     Titel:
  Antworten mit Zitat      
Zitat:

danke für die antwort mit dem timer, sitze gerade dran, nur irgendwie führt er trotzdem erstmal nur den timer aus und nicht mein restliches skript. is bis jetzt wie folgt aufgebaut:

weiss warum nur der timer ausgeführt wird. während der movie funktion können keine anderen befehle eingegeben werden und wenn man den timer auf 0.001 stellt wird immer wieder die moviefunktion aufgerufen Sad

habe mal die Periode auf 1 sekunde gestellt und schon konnte ich nebenbei befehle ausführen.

was soll ich also tun damit mein GIF ständig abläuft (zur Zeit habe ich es so geregelt das die moviefunktion läuft dann ein statisches bild und nach einer sekunde wieder das movie)
 
denny
Supporter
Supporter


Beiträge: 2601
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2007b, R2009b
     Beitrag Verfasst am: 23.04.2009, 11:38     Titel:
  Antworten mit Zitat      
Hallo,
sorry habe keine Zeit gefunden dir zu antworten.
Du sollst keine movie-Funktion von Matlab nutzen, wie du schon selbst festgestellt hast, die macht den Echzeit-Effekt weg.

Schreibe deine eigene Funktion, die jedes einzelnes Frame über Loop darstellt.
Private Nachricht senden Benutzer-Profile anzeigen
 
gast11
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.10.2009, 17:55     Titel:
  Antworten mit Zitat      
hallo,
kann man die movie2gif auch so abändern, damit man aus 3dim graphen animierte bilder erstellen kann?
vielen dank schon mal für die antwort Smile
grüße
 
Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2012 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.