粗大メモ置き場

個人用,たまーに来訪者を意識する雑記メモ

MATLABでPDFに余白を付けずに保存Ⅲ(MATLAB)

背景

古来より我々はmatlabの作るPDFのへんてこなことに悩まされ続けてきました。
今までも以下のようなシリーズで様々に悪戦苦闘してきました。

ossyaritoori.hatenablog.com
ossyaritoori.hatenablog.com

他の人のツールを使おう

以下のところからツールを落としてきます。
github.com

使い方 : テンプレ

このツールには主にpubfigとexpfigの2つがあります。
pubfigはfigureを綺麗に整形する機能が,
expfigはfigureを綺麗に出力(保存)する機能があります。

以下その例をば,

%figure定義
hfig=figure(1);
plot(~~);%なんか入れてplotしてね
grid on;
xlabel('frame number');
ylabel('error')
legend('A','B','Location','best')
title('Pyoyon')
pfig = pubfig(hfig);
pfig.LegendLoc = 'best';
pfig.FigDim = [15 11];
expfig('filename','-pdf');

loationをいじるところとか被ってたりするけどとりあえず何も考えなくともキレイな図が出るのが良いですね。

2018年4月追記)最後から二行目のところですが,FigDimという要素が削除されたようなので
pfig.Dimension = [15 11];
と書き換えて実行しましょう。

Figの大きさをいじる。

ソースコードはとても難解でしたがFigDimというクラスでFigureのサイズを司っています。

なおMATLAB公式によるとfigのうちのpositionというハンドルをいじれば変更できます。
https://jp.mathworks.com/help/matlab/ref/figure-properties.html

とりあえずコンパクトなサイズとして以下を使うようにしています,
[横 縦]の順です。

pfig.FigDim = [15 11];