WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Dimensionen bei movie-Animation ?

 

Beos
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 18.08.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.08.2009, 10:33     Titel: Dimensionen bei movie-Animation ?
  Antworten mit Zitat      
Hallo,
als Matlab-Neuling stehe ich vor einem Problem. Eine konzentrische 3D-Welle wird berechnet und in Abhängigkeit der Zeit als Animation wiedergegeben. Klappt super. Leider war mir die Fenstergröße zu klein, so dass ich diese mit der 2. Codezeile anpassen wollte. Es erscheint dann folgende Fehlermeldung:

» a_welle_02
??? In an assignment A(:,matrix) = B, the number of rows in A and B
must be the same.

Error in ==> C:\MATLAB\BIN\a_welle_02.m
On line 52 ==> M(:,k) = getframe;


Hier die Codezeilen:

Code:
myPlot = figure;
   set(myplot,'Position',[100,100,1200,300]);
   for k = 1:k_max    
      Z = Ys*sin(2*pi*((t+T/k_max*k)/T-x/L)); % Matrix der Auslenkung
      plot3(X,Y,Z);
      M(:,k) = getframe;
   end
   movie(M, 100, 25);


Wieso beeinflusst set() die Dimensionen, und wie kann ich das Problem lösen?

Danke !!
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 18.08.2009, 11:58     Titel:
  Antworten mit Zitat      
Ich sehe auch momentan kein Problem im Code. Ich habe den Code angepasst, so dass er ohne die spezifischen Daten läuft - jedenfalls bei mir:

Code:

myplot=figure;
set(myplot,'Position',[100,100,1200,300]);
for k = 1:10
      t = 0:pi/50:10*pi;
      plot3(sin(t),cos(t),t)
      M(:,k) = getframe;
 end
 


Läuft der? Wo könnte der Unterschied sein? Vielleicht ein mal den Code so debuggen:

Code:

plot3(X,Y,Z);
dummy=getframe;
whos dummy M
M(:,k) = dummy
 


Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Beos
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 18.08.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.08.2009, 13:18     Titel:
  Antworten mit Zitat      
Hallo,
ich habe deinen Code ausprobiert. Die Fehlermeldung ist geblieben. Auch dein Code wird nur ohne set() sauber ausgeführt. Bevor die Meldung auftritt wird allerdings das erste Frame mit den gesetzten set-Parametern generiert, erst danach tritt der Fehler auf.
Evtl. hat meine Matlab-Ver. (5.1) grundsätzlich einen Bug? Ich werde mal googeln ...

Hier einmal mein kompletter Code:

Code:
% kreisförmige 3D-Welle
% als Funktion des Ortes und der Zeit

% Ortsvektoren spannen 2D-Fläche auf
   [X,Y] = meshgrid([-10:0.2:10]);

% Kennwerte der Welle
   Ys = 100;   % Amplitude in cm
   T = 1;      % Periodendauer in Sekunden
   L = 5;      % Wellenlänge in Meter
   
% Berechnung auf Basis der Wellengleichung
   x = sqrt(X.^2 + Y.^2); % Matrix radialer Abstände zum Zentrum
     
   k_max = 5; % Anzahl der Frames
   M = moviein(k_max);
   
   myPlot = figure;
   set(myPlot,'Position',[100,100,1200,300]);
   for k = 1:k_max
      Z = Ys*sin(2*pi*((t+T/k_max*k)/T-x/L)); % Matrix der Auslenkung
      plot3(X,Y,Z)
      M(:,k) = getframe;
   end
   movie(M, 100, 1);


Danke !!
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 18.08.2009, 14:57     Titel:
  Antworten mit Zitat      
Wenn ich z.B. in der Schleife t=1 setze läuft auch der letzte Code bei mir durch. MATLAB 7.8 (R2009a).

Natürlich kann MATLAB 5.1 einen Bug gehabt haben. Diese Version ist von Juni 1997 (die erste Version die auf einem Medium namens "CD" ausgeliefert wurde!). Die ältesten publizierten System Requirements sind von 1999:

http://www.mathworks.com/support/sysreq/release11/index.html

Wenn das hier nicht stimmt:

o Microsoft Windows 95, Windows 98 or Windows NT 4.0 (with Service Pack 3, 4 or 5)
o Intel 486, Pentium, Pentium Pro or Pentium II based personal computer

bitte ernsthaft überlegen ein Upgrade durchzuführen.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.