Verfasst am: 19.11.2010, 17:38
Titel: mehrere Plots
Hallo an Alle,
ich habe folgendes Problem mit dem Plot befehl.
Ich habe mehrere Plots die ich mir erstelle.
Das sind ungefähr 30 Stück. Nun weise ich jedem dieser Subplos den befehl subplot zu.
Was ich machen möchte ist die mit dem befehl subplot erstellten Plots, also die die in meinem Fall aus 4 Plots bestehen zu speichern und gleichzeitig aber auch die einzelnen Plots. Und zwar beides seperat in verschiedenen Ordnern.
Das wollte ich mit dem Befehl saveas erreichen, indem ich jenen für beide Plots genommen habe und zwar in der Form:
Code:
a=figure(1);
subplot(2,2,1);
n=plot(x,y;x2,y2); % enthält also 2 Graphen saveas(n,fullfile(pfad,'Subplots'),'fig'); % in Ordner Subplots saveas(a,fullfile(pfad,'Plot1'),'fig'); % in Ordner Plots_einzeln
Das Ganze geht eben bis subplot(2,2,4) und dann kommt ne neue figure.
Und ich möchte in Prinzip das diese figures welche immer 4 Subplots enthalten seperat in einem ordner Subplots gespeichert wird, aber die verschidenen subplots möchte ich einzeln in andere Ordner abspeichern.
Jeodoch erscheint folgende Fehlermeldung:
Code:
??? Operands to the || and && operators must be convertible to logical scalar values.
Vielen Dank für eines der sehr wenigen Beispiele, bei denen Matlab's Fehlermeldungen nicht hilfreich sind!
SAVEAS erwartet einen FIGURE Handle. Ganz kulant akzeptiert es aber auch Handle-Grafik-Objekte, versucht dann aber immer die Figure zu suchen, die das Objekt enthält. Leider funktioniert das nur für skalare Handles, während Dein PLOT-Kommando mehrere Handles zurückliefert!
Lösung: Du kannst nicht ein einzelnes AXES-Objekt per SAVEAS speichern. Eine ".fig"-Datei muss einfach eine ganz Figure enthalten! Du könntest per COPYOBJ die einzelnen Subplots also zunächst in eigene FIGUREs kopieren, und danach per SAVEAS abspeichern.
Zudem könntest Du einen Bugreport an MathWorks schreiben: Fehlermeldung von SAVEAS ist irreführend, wenn H ein Vektor ist.
ich bin gerade etwas verwirrt.
Was meinst du mit AXES-Object ? Also meine beiden Grafen die ich in einem Bild speichern möchte sind doch ne figure?
Ich verstehe das Problem noch nicht, weil ich nicht so recht weiß was der unterschiede zwischen figure und AXES-Object ist?
Nun erscheint ein AXES-Objekt, in dem Du Diagramme etc zeichnen kannst. AXES werden z.B. auch automatisch vom SUBPLOT-Commando erstellt.
Wie immer: "help figure" und "help axes" sind auch recht hilfreich.
SAVEAS speichert den Inhalt des FIGURE-Obkjektes. Deshalb muss man auch den Handle der Figure als Input verwenden. In Deinem Code wurden aber die Handles der gezeichneten Linien als Input für SAVEAS verwendet, was zu der nicht hilfreichen Fehlermeldung führte. Besser wäre eine Meldung wie: "Need a figure handle as input".
Verfasst am: 24.11.2010, 19:54
Titel: Re: mehrere Plots
Jan S hat Folgendes geschrieben:
Zudem könntest Du einen Bugreport an MathWorks schreiben: Fehlermeldung von SAVEAS ist irreführend, wenn H ein Vektor ist.
Gruß, Jan
@Platin
Interessant wäre noch die Version zu erfahren, wo dieser Fehler auftaucht?
Ich hab in 2 Versionen ausprobiert, also in 2009b taucht schon die richtige Fehlermeldung auf.
Zitat:
??? Error using ==> saveas at 59
Invalid handle.
in 2007b taucht überhaupt kein Fehler auf, Übergabe von Plot-Handle wird ohne Probleme geschluckt, und die Figure auch richtig abgespeichert.
Also muss wohl der Fehler zwischen den Beiden Versionen auftreten.
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.