Why export_fig won't work if code is run automatically?

1 vue (au cours des 30 derniers jours)
Marian
Marian le 10 Jan 2014
Commenté : Sean de Wolski le 13 Jan 2014
Hi, I've created a script that will update graphs every hour and save them as .jpgs using export_fig. When I manually run the script, it all goes smoothly, but when I use a c-shell to run MATLAB, the .jpg created is scrunched with no plot (only the title and axis labels are there). My .csh looks like this:
#! /bin/csh
matlab -nodisplay -nodesktop -r "run /home/mmateling/realtime/capebird.m"
So the script runs, with no errors, but there must be something wrong with the way my .csh script runs and the export_fig code. I am by no means a unix or matlab expert, so any help would be greatly appreciated!

Réponse acceptée

Image Analyst
Image Analyst le 10 Jan 2014
I think export_fig grabs pixels from the display memory, though I could be wrong. I never would have tried to run it with the nodisplay option so that nothing is displayed. Is anything at all being saved, like whatever happens to be on your screen at the moment?
  2 commentaires
Marian
Marian le 13 Jan 2014
Sorry, I should've included my code!
set(gcf, 'Color', 'white'); % white bckgr
saveas(gcf,'birdmet.jpg')
drawnow
export_fig(gcf, ... % figure handle
'birdmet',... % name of output file without extension
'-painters', ... % renderer
'-jpg', ... % file format
'-r100'); % resolution in dpi
I used a multitude of different websites to help me get to this point. And I tried taking out nodisplay and it still doesn't work. When I run my code as is, the .jpg is created exactly as I would expect, and is saved into my directory using export_fig
Marian
Marian le 13 Jan 2014
Ok - I've got it working now! Thank you!

Connectez-vous pour commenter.

Plus de réponses (1)

Sean de Wolski
Sean de Wolski le 10 Jan 2014
Modifié(e) : Sean de Wolski le 10 Jan 2014
Did you drawnow() before exporting/printing?
  2 commentaires
Marian
Marian le 13 Jan 2014
This must've been the main problem! I wish I could accept both answers - I used
drawnow update expose
and took out the code nodisplay (as Image Analyst said to do, below), and it is finally working. Thank you!
Sean de Wolski
Sean de Wolski le 13 Jan 2014
Well you could vote for 'em both :)

Connectez-vous pour commenter.

Catégories

En savoir plus sur Interactive Control and Callbacks dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by