プロが教えるわが家の防犯対策術!

MATLABのグラフをコマンドラインから、jpgで保存する作業をしています。

handle_fig11 = figure(11);
rect = [ 0, 0, 1200, 600];
set(handle_fig11, 'Position', rect);
(描画)
saveas(handle_fig12,'***.jpg');

のように保存しているのですが、保存されたファイルの縦横サイズが1200x600でなく、1563x781になってしまいます。指定した画素数で保存するにはどうすれば良いか教えてください。saveasのオプションは、なさそうですし、どこで決まってしまうのでしょうか?ちなみに、グラフのGUIを使って保存すると、1200x600で保存されますが、コマンドラインから、自動で保存する必要があり、困っております。よろしくお願いします。

A 回答 (2件)

set(handle_fig11, 'Position', rect);


-> set(handle_fig11, 'PaperPosition', rect);
にすると良いです。

saveasで主力される画像サイズは、プリントアウト時のサイズと同じなので'PaperPosition'で設定します。あと、'PaperUnits'にも注意しましょう(こちらがあっていないのかも)。

詳細は、参考URLの後半にある
参考)プリントアウトに関するFigureプロパティ
以降を参照してください。

参考URL:http://www.cybernet.co.jp/matlab/support/techkwd …
    • good
    • 0
この回答へのお礼

良く分かりました。どうもありがとうございました。

お礼日時:2007/12/25 01:35

saveasで保存しているのはfigure全体で、画像はaxisの部分のみに格納されているのが原因です。


現在自宅にMATLAB環境がないのでコマンドの詳細はわかりませんが、
axisの幅と高さなどを取得して、figureの幅と高さを、axisと同じに設定する必要があったと思います。
    • good
    • 0
この回答へのお礼

ご回答遅くなって申し訳ありません。非常に良く分かりました。どうもありがとうございました。

お礼日時:2007/12/25 01:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!