もちっとメモ

読者です 読者をやめる 読者になる 読者になる

もちっとメモ

管理人のホームページで書ききれていない調べ物のメモページです

Matlabで出力された画像が見切れる

Matlab

サイズを指定して出力すればよい

サンプルコード(1024×768の場合)

    
        width = 1024;
        height = 768;
        set(gcf,'PaperPositionMode','auto')
        pos=get(gcf,'Position');
        pos(3)=width-1; % なぜか幅が1px増えるので対処
        pos(4)=height;
        set(gcf,'Position',pos);
        print('-r0','-dpng','fig.png');
    

参考URL:http://ichiro-maruta.blogspot.jp/2010/11/matlab.html 

Matlabで作成したepsやpngファイルの一部が見切れてしまうこの現象.
原因はMatlab epsのBoundingBox(ここまで図形が入っていることを示す領域)の値の一部が負値を取っているせいとのこと.
この状態の画像をdvipdfmx(Texでよく使うやつ)で開くと非負値しか正しく表示できないせいで見切れてしまうよう.
xpdfを入れてpdftopsコマンドを使用して
eps→pdf→eps
の順に変換すればepsからでも何とかできるよう.
でも,図を再出力できるのであれば,サイズを指定して出力するのが手っ取り早そう.
xpdf導入後の一括変換Shellコマンド

    
      #!/bin/sh
      for f in `find . -name "*.eps"`
      do 
       epstopdf --outfile=$f.pdf $f
       pdftops -eps $f.pdf $f.eps
       mv $f.eps $f
       rm $f.pdf
      done  
    

参考URL:
http://elehoody.blog.fc2.com/blog-entry-231.html
http://fenrir.naruoka.org/archives/000576.html