Obwohl der Befehl so an anderer Stelle funktioniert hat wird ein Syntaxfehler direkt hinter print angezeigt.
Ich habe auch zwei verschiedene Toolboxen ausprobiert, innerhalb und außerhalb der Funktion. Nichts funktioniert...
Weiß jemand was das sein könnte?
Grüße
Thomas
AndyydnA
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 28.12.2017, 16:30
Titel:
hinter "plot" fehlt eine schließende Klammer
und bei mehreren Parametern solltest du auf die commandform verzichten, daher eher 'print("foo.pdf","append");
und wahrscheinlich willst du noch ein "drawnow" zwischen plot und print.
danke für den Hinweis. Der Fehlerhinweis von Octave kam etwas spät und war eher verwirrend als hilfreich dadurch. Eine Fehlermeldung kommt jetzt nicht mehr. Allerdings selbst mit den Korrekturen und Drawnow passiert dann gar nichts, auch keine Graphik. ..
Grüße
Thomas
AndyydnA
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 29.12.2017, 10:12
Titel:
Da würde jetzt natürlich dein kompletter Code weiterhelfen zusammen mit der Version von GNU Octave, dem verwendeten Betriebssystem und welches graphics_toolkit du jetzt verwendest.
Den Weg über PDF bin ich bisher nie gegangen um ein .avi oder .gif zu erzeugen
danke für die Antwort. Der Code ist bis auf die Korrekturen der gleiche:
Ich verwende Octave 4.2.1 mit Optim installiert aber ohne
weitere Pakete unter Windows 10
Die Toolbox ist also automatisch ausgewählt.
Der Code ist
Code:
#graphics_toolkit fltk
x = (-5:.1:5);
for n = 1:50 plot(x, sin(x+n*0.1*3.141527))
#drawnow
print("animation.pdf", "append");
endfor
im = imread("animation.pdf", "Index", "all");
imwrite(im, "animation.gif", "DelayTime", .5)
das mit dem video package wusste ich noch nicht. Super geil.....
Habs mal ausprobiert, und es funktioniert wunderbar, funktionierendes Beispiel:
Code:
pkg load video
% avifile("codecs") % to see which compression type is available
x = avifile("test.avi","title", "octave generated avi","author", "itsme","comment", "blablabla", "codec" ,"msmpeg4v2");
% Generate and add frames for i = 1:100
I = zeros(100,100);
I(i,:) = i;
I(:,i) = 200-i;
addframe(x, I/255);
printf(".");
end
printf("\n");
% Close the file clear x;
bekomme ich den folgenden Fehler beim ersten ausführen:
error: Magick++ exception: Magick: Unable to access configuration file (delegates.mgk) reported by magick/blob.c:1946 (GetConfigureBlob)
error: called from
__imread__ at line 78 column 10
imageIO at line 117 column 26
imread at line 106 column 30
expng at line 8 column 4
also Fehler mit -> im = imread("animation.pdf", "Index", "all");
Habe den obrigen Code im m file ausgeführt.
wenn ich dann die Zeile
noch einmal ausführe dann stürzt Octave 4.2.1 unter win10 komplett ab....wird
also geschlossen, wahrscheinlich von windows wegen unerlaubten Speicherzugriff oder so...
Gruß
AndyydnA
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 03.01.2018, 08:40
Titel:
@StephanIIe kannst du einen minimalistischen Code für das imread Problem machen und ein bugreport auf savannah erstellen?
Dann auf jedenfall noch Betriebssystem und Octave version mit dazu und ob installer oder portable zip.
Gruß Andy
StephanIIe
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 03.01.2018, 12:20
Titel:
Hallo habe ich soeben gemacht -> bug #52792
Gruß
Stephan
StephanIIe
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 03.01.2018, 12:30
Titel:
Hallo,
ist der imread Befehl überhaupt geeignet ein pdf einzulesen?
Uner Octave und Matlab, war mir nicht bekannt.
Aber trozdem sollte kein crash dabei rauskommen.
Gruß
Stephan
AndyydnA
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 04.01.2018, 10:05
Titel:
Hi Stephan,
imread in GNU Octave verwendet graphicsmagick. Also jedes imread jedes format lesen, welches graphicsmagick unterstützt (das sind AFAIK einige mehr als Matlab kann).
Wegen deinem Bugreport, im letzten Kommentar hast du geschrieben du hättest doubleqquotes probiert? War das ein Typo und du meintest singlequotes?
Als test kannst du ja git getenv die variable zurücklesen und z.B. in Octave ein cd (getenv(...)) machen um zu schauen, ob der pfad und das escaping passt.
Jedenfalls scheint beim MXE installer der config pfad falsch gesetzt zu sein.
Ah, vielleicht kannst du mal nach einem Neustart den MAGIC_CONFIG_PATH auslesen und schauen, wohin der zeigt.
StephanIIe
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 04.01.2018, 13:09
Titel:
Hi,
beim Neustart ist die Antwort von getenv("MAGICK_CONFIG_PATH") leer, also kein pfad wird zurückgelesen.
wenn ich nun setenv ("MAGICK_CONFIG_PATH", 'C:\usr\Octave_421\lib\GraphicsMagick-1.3.25\config')
dann kommt mit getenv der richtige pfad....
mit
cd (getenv("MAGICK_CONFIG_PATH"))
im = imread("C:\\work\\octave\\SpaceSimulator-master\\Environment\\CelestialBodies\\analysis\\93xxc_appendix_c.pdf", "Index", "all");
tritt der Fehler nach wie vor auf.
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.