Verfasst am: 23.01.2008, 10:44
Titel: Neues Figure mit alten Daten
Hallo,
hab ein kleine Problemchen.
Ich erzeuge ein Figure (Figure(1) mit beliebig vielen dargestellten Datensaetzen. Ich moechte nun aus diesem Figer einen Bereich herauszoomen. Dafuer aendere ich eigentlich nur die Darstellung der x/y-Achse. Diese Darstellung moechte ich nun aber in einem neuen Figure (Figure(2)) darstellen und dieses Darstellung als z.B. jpg abspeichern. Das mit dem abspeichern funktioniert auch ganz gut, leider aber nur mit dem ersten Figure (Figure(1).
Moechte ebn nur ein Spiegelbild/Kopie erstellen und evtl noch eine paar Modifikationen in der Darstellung vornehmen wie Linienfarbe etc. (aber dann eben nur in Figure(2)).
Solange ich nur einen Datensatz habe funktioniert es mit dem get(gca..)-Befehl. Bei mehreren Datensaetzen bekomme ich nur Fehlermeldung.
Aus Ermangelung eines BEfehls, der ein figure in ein anderes kopiert, kann man evtl. folgendes machen:
quick'n'dirty
figure mit saveas und Endung *.fig abspeichern, wieder laden (dann in neuem fenster), Modifizieren und dann als jpg abspeichern.
Allerdings bin ich mir nicht sicher, ob die handles alle Erhalten bleiben - gerade zum ändern von Liniendicken brauchst Du die ja?
_________________
---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....
Hab mir gerade so selbst geholfen( Hab ich auch hier im Forum gefunden):
obj=get(gca,'Children');
xDat=get(obj,'XDat');
yDat=get(obj,'YDat');
xDat und yDat werden nach mehreren Durchlauefen zu einem cellarry (heisst glaub ich so?!?!?).
Danach hab ich die Daten in einer Schleife wieder zu einem Bild geplotet:
for k=1:Loop
plot(xDat{k,1},yDat{k,1},[b-- d']);
xlabel('Angle [deg]'), ylabel(Force[N]');
axis([xmin xmax ymin ymax]);
grid on;
hold on;
end
Ist vielleicht acu etwas umstaendlich, aber es funktioniert.
haxes ist der Handle von der Axes woraus Du die Plots kopieren willst
Damit kannst viell schneller zum Ergebnis kommen. Gerade mal eine Zeile und das wars...
MfG
SuMo
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 24.01.2008, 10:02
Titel:
Hi outsider,
bin anscheinend zu doesig um mit dem Befehl zu arbeiten . Komm nicht so mit der Syntax zurecht.
Wie ist die genaue Abfolge mit den Befehlen?
Annahme ich habe ein Figure erstellt, nenenn wir es doch mal figure(1).
Wie muessen die naechsten Zeilen ausschauen, damit ich aus figure(1) ein figure(2) bekomme mit der gleichen Darstellung der Daten?
Kann mit den vielen Fehlermeldung die bei meinen Versuchen kommen nicht viel anfangen, dafuer fehlt mir das Hintergrundwissen bei Matlab.
Danke fuer die Unterstuetzung
SuMo
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 24.01.2008, 11:18
Titel:
Und noch ein kleines Problem.
Mit meinen, etwas umstaendlichen Weg, ist noch ein Prob aufgetreten. Bei der Darstellung des zweiten Fig. werden die Linienfarben in der umgekehrten Reihenfolge dargestellt. In Figure(1) ist Lininenfarbe1 blau, L2 ist rot. Mit meinem Weg verdrehen sich ploetzlich die Farben.
Code:
lineclr_detail=['b' 'r' 'g' 'k' 'm' 'c' 'y']; %Hilfsvektor zur Darstellung der Farben, entspricht der Reihenfolge aus Fig1
for k=1:LoopNum
plot(xDat{k,1},yDat{k,1},[char(lineclr_detail(k)),'-']);
xlabel('Angle [deg]'), ylabel('Torque [Nm]');
axis([-3.01-2.8 y_0 y_1]); %Plot the x-Axxis from -3.01to-2.8 grid on;
hold on;
end
Hab nochmal den gasamten Abschnitt dargestellt. WO liegt das Prob?
Kann es sein, das beim auslesen der Daten, seihe Fred von mir oben, die neuen Daten nicht hintenangesetzt werden, sondern vorne und somit sich alles nach hinten verschiebt? Wuerde die Umkehrung jedenfalls erklaeren oder?
Schein alles auf COPYOBJ hinauszulaufen. Und da waeren wir bei meinem alten Prob.........
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.