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

Print Befehl funktioniert nicht

 

Tomagic2000
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 22.12.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.12.2017, 08:48     Titel: Print Befehl funktioniert nicht
  Antworten mit Zitat      
Hallo,

ich versuche etwas Bewegung in eine Graphik zu bringen
mit folgendem Code:

Code:

#graphics_toolkit fltk
x = (-5:.1:5);
for n = 1:50
  plot(x, sin(x+n*0.1*3.141527)
  print animation.pdf -append
endfor
im = imread("animation.pdf", "Index", "all");
imwrite(im, "animation.gif", "DelayTime", .5)
 


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
Private Nachricht senden Benutzer-Profile anzeigen


AndyydnA

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.12.2017, 16:30     Titel:
  Antworten mit Zitat      
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.

Gruß Andy
 
Tomagic2000
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 22.12.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.12.2017, 17:57     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
AndyydnA

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.12.2017, 10:12     Titel:
  Antworten mit Zitat      
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
 
Tomagic2000
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 22.12.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.12.2017, 10:52     Titel:
  Antworten mit Zitat      
Hallo,

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 System ist für i686-w64-mingw32 konfiguriert.
Wie kann ich nachschauen welche Toolboxen installiert sind?


Grüße

Thomas
Private Nachricht senden Benutzer-Profile anzeigen
 
AndyydnA

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.12.2017, 11:03     Titel:
  Antworten mit Zitat      
also unter GNU/Linux funktioniert es, sobald ich den typo bei append gefixed habe:

Code:

print("animation.pdf", "-append");
 


btw, ich weiß nicht ob das für dich interessant ist aber mit dem video package könntest du auch ein .avi oder mpeg video erzeugen
 
StephanIIe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.12.2017, 18:45     Titel: package list
  Antworten mit Zitat      
Hi,

wenn du eintippst:

pkg list

dann bekommst du eine Übersicht welche packete installiert sind.
die wo ein Sternchen * gezeigt wird, diese packete sind geladen.

willst du ein packet laden möchtest(wenn noch ohne Sternchen *)
dann mit pkg load packetname

@Andy,

funktioniert das video package auch unter der Windows Version von Octave?

Hast du einen einfachen Beispiel Code?
 
AndyydnA

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.12.2017, 21:32     Titel:
  Antworten mit Zitat      
StephanIIe, also das video package und ffmpeg sind AFAIK beim MXE windoze installer ab 4.0.1-rc3 schon kompiliert mit dabei.

Der Sourcecode hast tests und demos, siehe z.B. am Ende von
https://sourceforge.net/p/octave/vi.....ault/tree/src/addframe.cc

Gruß Andy
 
StephanIIe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.01.2018, 22:18     Titel: video pkg
  Antworten mit Zitat      
Hi Andy,

fohes Neues at all.....

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;  


seit einigen Jaheren gibt es avifile() ja nicht mehr unter matlab, es heißt jetzt:

v = VideoWriter('test.avi',);

und ist object orientiert.

Danke für den Hinweis

Gruß

Stephan
 
StephanIIe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.01.2018, 23:20     Titel:
  Antworten mit Zitat      
Hallo,

wenn ich den korrigierten code von Tomagic2000 bei mir ausführe, siehe hier:

Code:

x = (-5:.1:5);
for n = 1:50
  plot(x, sin(x+n*0.1*3.141527))
  % drawnow
  print("animation.pdf", "-append");
end;
im = imread("animation.pdf", "Index", "all");
imwrite(im, "animation.gif", "DelayTime", .5)


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
Code:

im = imread("animation.pdf", "Index", "all");


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: ---
     Beitrag Verfasst am: 03.01.2018, 08:40     Titel:
  Antworten mit Zitat      
@StephanIIe kannst du einen minimalistischen Code für das imread Problem machen und ein bugreport auf savannah erstellen?

Reicht das um das Problem zu triggern?

Code:

plot (1:10)
print("animation.pdf", "-append");
plot(sin(0:0.1:20))
print("animation.pdf", "-append");
im = imread("animation.pdf", "Index", "all");
 


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: ---
     Beitrag Verfasst am: 03.01.2018, 12:20     Titel:
  Antworten mit Zitat      
Hallo habe ich soeben gemacht -> bug #52792

Gruß

Stephan
 
StephanIIe

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.01.2018, 12:30     Titel:
  Antworten mit Zitat      
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: ---
     Beitrag Verfasst am: 04.01.2018, 10:05     Titel:
  Antworten mit Zitat      
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: ---
     Beitrag Verfasst am: 04.01.2018, 13:09     Titel:
  Antworten mit Zitat      
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.
 
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.