Verfasst am: 18.08.2009, 09:33
Titel: Dimensionen bei movie-Animation ?
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);
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);
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:
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
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.