• ベストアンサー

MATLABのグラフをファイルに保存する時のサイズ指定方法?

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で保存されますが、コマンドラインから、自動で保存する必要があり、困っております。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • qqtester
  • ベストアンサー率66% (10/15)
回答No.2

set(handle_fig11, 'Position', rect); -> set(handle_fig11, 'PaperPosition', rect); にすると良いです。 saveasで主力される画像サイズは、プリントアウト時のサイズと同じなので'PaperPosition'で設定します。あと、'PaperUnits'にも注意しましょう(こちらがあっていないのかも)。 詳細は、参考URLの後半にある 参考)プリントアウトに関するFigureプロパティ 以降を参照してください。

参考URL:
http://www.cybernet.co.jp/matlab/support/techkwdb/search_view.php?id=1017
yyamada10
質問者

お礼

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

その他の回答 (1)

  • keyth
  • ベストアンサー率50% (2/4)
回答No.1

saveasで保存しているのはfigure全体で、画像はaxisの部分のみに格納されているのが原因です。 現在自宅にMATLAB環境がないのでコマンドの詳細はわかりませんが、 axisの幅と高さなどを取得して、figureの幅と高さを、axisと同じに設定する必要があったと思います。

yyamada10
質問者

お礼

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

関連するQ&A

  • MATLABのFigureプロパティの変更について

    MATLABでsaveasによって一度保存したFigファイルを再びMATLAB上で読み込んだ後、 そのFigureのFigureプロパティをコマンドラインで変更する方法について教えて頂きたいです。 具体的には、Figureのサイズとマーカーのサイズを変更したいのですが、 set関数で'Position'や'Makersize'を用いても変化しません。 ちなみに、エラーも出ません。 参考になるサイトでもいいので、教えて下さい。 お願いします。

  • Matlabによる一次方程式のグラフ表示

    matlab初心者です。 x1 + x2 = 15 x1 + x2 = 7 x1 >= 0, x2 >= 0 を、縦軸x2, 横軸x1によるグラフ表示したいです。 しかし、matlabにこのまま何も考えずに打ち込むと、x2が定義されていない、x1が定義されていないなどと出ます。 どのようなやり方をすればいいのでしょうか。 よろしければ、実際に打ち込むコマンドを示していただけないでしょうか。 お願い致します。

  • 【Matlab】画像として保存するとplot3による点が消えてしまう

    【Matlab】画像として保存するとplot3による点が消えてしまう ----------------------------------------------------------------------------------- 最近Matlabを使用し始めた初心者です。よろしくお願いします。 surf出力とplot3による点が見える形で画像を出力したいと思っています。 画像はグラフを真下からのぞいたものとし、自動的に保存したいです。 自分の稚拙なプログラムではどうしてもプロットによる点が現れません。 対策をご教授いただきたいです。 プログラムの内容は、 二次元データをcsvから読み込み、surfで出力、 またデータ上のある座標での出力をplot3で点として表示するという流れを意図しています。 'Figure'ウィンドウ上(.fig)ではplot3で出力された点が表示されるのですが 画像(bmp,tiffで出力してみました)として出力した場合その点が消えてしまいます。 mファイルのプログラム、環境は以下のようになっています。 function test_show_graph(csvfilename) %------------------------------------ z = csvread(csvfilename); [height, width] = size(z); [x,y] = meshgrid(0:0.1:(height*0.1)); h_surf = surf(x,y,z); hold on zi = interp2(x,y,z,4,4, 'cubic'); plot3(4.0,4.0,zi+10,'.r','MarkerSize',30); plot3(4.0,4.0,zi-10,'.r','MarkerSize',30); hold off view([0, -90]); saveas(h_surf, 'test', 'tiff'); %Matlab&Simulink R2008a %WindowsVista SP1 %Dell StuioXPS(Intel Core i7) surfの表面に隠れて点か見えなくなっていると思い、 表面の上下に突き抜けるようにlineを出力してみたりしてみましたがダメでした。 駄文となり申し訳ありません。 皆様の知識をお借りできれば幸いです。

  • Matlabのcapture

    Matlabで,表示させたFigureのコピーを作成して,そのファイルを保存する操作を行うcaptureについての質問です.Matlab7.5.0(R2007b)を使っています. 下記サイトには参考コードとして [X,map] = capture(2); imwrite(X,map,'fig2.tif') がありました. しかしこの上の行のcapture(2)の2をFigure 1や単に1などに変更してみても(現在Figure 1を表示させているためです.), ??? 未定義の関数、またはメソッド 'capture' (タイプ'double' の入力引数)。 などというエラーが出てしまいます. どのような操作を行えば良いのでしょうか? どうぞよろしくお願いいたします. http://infoshako.sk.tsukuba.ac.jp/InfoRes/jdoc/MATLAB5/jhelp/techdoc/umg/umg.html http://infoshako.sk.tsukuba.ac.jp/InfoRes/jdoc/MATLAB5/jhelp/techdoc/umg/chprin31.html

  • MATLABでのエッジ強度画像の出力と保存

    MATLABで画像処理を行ない,対象とする画像(添付のcell.jpg)の勾配強度画像を得たいと思っております.ただし,その保存がうまくいきません. プログラムは,下記のコードを利用しました. im = imread('C:/work/cell.jpg'); im = rgb2gray(im); %メディアンフィルタで平滑化 J = medfilt2(im); figure(1) imshow(J) %勾配強度画像を求める hy = fspecial('sobel'); hx = hy'; Iy = imfilter(double(J), hy, 'replicate'); Ix = imfilter(double(J), hx, 'replicate'); gradmag = sqrt(Ix.^2 + Iy.^2); %figure, imshow(gradmag,[]), title('Gradient magnitude (gradmag)') imshow(gradmag,[]) 上記のプログラムで正しくエッジ強度画像は出力されるのですが,問題はそれを保存するときです. 「imwrite(gradmag, 'C:/work/cell_grad.jpg','jpg')」 のように保存すると,添付ファイルのようになってしまいます. どのようにしたら解決できますでしょうか. どなたかお分かりになる方がいらっしゃいましたら,ご教示お願い致します.

  • AutoCAD 保存時 ダイアログボックス

    AutoCADの保存時にファイルのダイアログボックスが表示されません。 コマンドラインからしか保存できなくなりました。 ファイルの名前をつけて保存(A)を選択すると コマンド: _saveas 現在のファイル形式: AutoCAD 2007 図面 ファイル形式を入力 [R14(LT98)/(LT97)/2000(LT2000)/2004(LT2004)/2007(LT2007)/標準仕様(S)/DXF/テンプレート(T)] <2007>: だけしか表示されません。 今までは、ダイアログログボックスが表示されて 保存する場所を自由に選択できたのですが コマンドラインからの入力では別のフォルダーに保存することができないです。 どのようにしたらファイルのダイアログボックスが表示されますか?

  • scilabでのグラフ描画時の軸設定

    scilabで2次元グラフを描くときの軸の設定 scilabのカラー描画であるMatplotを使ってグラフを描画しているのですが、縦軸と横軸の交点が思い通りに設定できません。 また、グラフと軸がずれて配置されてしまいます。 現在このようなプログラムでグラフを描画しています。 u=[1:1:5;1:1:5;1:1:5;1:1:5;1:1:5]; umin=min(u(:)); umax=max(u(:)); u=255*(u-umin)/(umax-umin); Matplot(u);//行列プロット set(gcf(),'color_map',jetcolormap(256)); colorbar(umin,umax);//color barの表示 g=gca(); g.axes_visible='off'; g.children.data=g.children.data($:-1:1,:);//原点を左下にする xtics=0:1:4;//x軸目盛の設定 drawaxis(x=xtics,y=0.5,dir='d',tics='v'); g.children(1).tics_labels=string(-2:1:2); ytics=0:1:4;//y軸目盛りの設定 drawaxis(x=0.5,y=ytics,dir='l',tics='v'); g.children(1).tics_labels=string(1:1:5); このプログラムを実行すると、縦軸が0.5で、横軸が-1.5のところで交わってしまいます。 また、カラー表示されたグラフが縦軸・横軸共に1.5くらいずつずれてしまいます。 ちなみにこのプログラムは以下のURLのサイトのプログラムを参考にしたものです。 http://vision.kuee.kyoto-u.ac.jp/lecture/dsp/?menu=mat_figure 初心者の質問で申し訳ありませんが、かなり困っています。ご指導、アドバイスよろしくお願いいたします。

  • gnuplotの使い方が・・

      先日、初めて学校でgnuplotを習ったのですが、 saveコマンドの使い方がよくわかりません。マニュアルには、「それまで描画した最後のグラフを作成する手順がファイルに保存される」とあり、とりあえず、  >set samples 200 >set xrang [-10:10] >plot sin(x) としてサインのグラフをかいてみて その後  >save ''graph.plt'' として保存しようと思ったのですが no such directly or file と表示され 保存できません。どうずればできるのですか。出力先とか を変更するのですか。よくわかりません。どなたか教えて下さいお願いします。

  • MATLABでbodeコマンド(ラベル変えたい)

    MATLABについて質問です. MATLABを使ってボード線図を書いたのですが, bode()コマンドを使ったときにグラフのy軸ラベルを変える方法を教えてください. figureウインドウで右クリック→プロパティからラベルを変えることはできるのですが, これだとプログラムを再び実行すると最初の状態に上書きされてしまいます. なのでできればプログラム上でy軸ラベルを指定したいのですが, ゲイン特性と位相特性の二つのグラフそれぞれの軸を変える方法がわかりません. たとえばbode(A),ylabel('B') のようにするとなぜか位相特性のy軸ラベルが変わります. わかる方お願いしますm(_ _)m

  • ピクチャボックスに描画した画像の保存

    VB6.0にて、 http://www.uploda.org/uporg898462.jpg このようなものを作成しました。 折れ線グラフはプログラムにて後から描画したもの、 それ以外の目盛りなどは最初からピクチャボックスに描画してあるものです。 pic1,pic2は共にピクチャボックスです。 赤い線で囲まれたpic1を目盛り、グラフ、その他のテキストボックスや文字と共に画像として保存したいのですが、 SavePicture Pic1.Image, "C:\SaveTest2.bmp" とすると、pic1の大きさの、何も描画されていない真っ白な画像が保存されてしまいます。 また、SavePicture Pic2.Image, "C:\SaveTest2.bmp" (pic2の保存) とすると、折れ線グラフのみが描画され、目盛りは無くなった画像が保存されてしまいます。 2つのピクチャ共にAutoRedraw=Trueを設定しています。 pic1を上手く保存する方法は無いでしょうか? ご教授、お願いします。