• 締切済み

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

みんなの回答

  • m0r1_2006
  • ベストアンサー率36% (169/464)
回答No.1

figure 2 をファイルに落とすのだけなら, figure(2); print('-dtiff',[test.tiff']); では,だめですか?

macky1985
質問者

お礼

どうもありがとうございます! 試してみます.

関連するQ&A

  • matlabでsurfに写真の絵をのせる方法。

    matlabでsurfに写真の画像をのせる方法を教えてください。 現在でRGBのデータを [X,map]=rgb2ind(a,65536); で変換し、 X=double(X)+1; surf(huta,X); colormap(map) で出力しているのですが、色が全く近くなりません. [X,map]=rgb2ind(a,65536);X=double(X); image(X) colormap(map) で出力したのと、ほぼ同色の画像が上に載る事になります。 [X,map]=rgb2ind(a,65536);X=double(X)+1; image(X) colormap(map) で出力したのと同じ様な画像を載せたいのですが方法を教えてください。 お願いします。

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

  • MATLABの使い方で困ってます。

    >> s=sym('s'); >> r=sym('r'); >> W=int(pi(r^2-(r-s)^2),0,x) と計算しようと思ったのですが、 ??? エラー: ==> pi 入力引数が多すぎます と表示されました。 MATLABではπはpiで計算できると思うのですが、どうしてエラーになるのでしょうか? また上の積分は、sについての範囲[0,x]の積分にしたいのですが、どうやったらいいでしょうか? お願いします。助けて下さい。

  • MATLABのプログラミングについてご質問です

    MATLAB初心者です。 現在、以下の環境を使っています。 ------------------------------- OS:Windows XP MATLABのバージョン:R2007a ------------------------------- 以下の内容をプログラムでどう組み込めばよいのか分らないため、質問させて頂きました。 詳しい方、ご教授のほどお願いします。 (1)Windowsのペイントで、ドラッグ&ドロップすると    +----------+    |         |    +----------+  このように、点線で枠ができると思います。それをMATLABで表現する方法  (始点座標と終点座標はマウスで操作するため、座標は可変になります) (2)MATLAB-GUIに画像データ(sample.tif)を表示する方法 (3)MATLAB-GUIを表示した時に、表示位置を常にパソコンのモニター中央にする方法 (4)MATLAB-GUIで画面A, Bとある場合、画面Aの[次へ]ボタンを押すと画面Aを消して画面Bを表示する方法 長くて申し訳ございませんが、ご回答よろしくお願いします。

  • MATLABの初歩?

    最近始めた画像処理。 MathWorksから提供されたサンプルプログラム。 MATLABから画像を読み込みヒストグラムを計算しようとすると 「関数’imhist’(タイプ'unit8'の入力引数)が未定義です」 と表示されます。 ちなみに、 ・image pressing ・image Acquisition などは評価版です。 対処方法をご教授いただける方いらっしゃいますか?

  • MATLABのプログラミングについてご質問です(2)

    MATLAB初心者です。 現在、以下の環境を使っています。 ------------------------------- OS:Windows XP MATLABのバージョン:R2007a ------------------------------- 以下の内容をプログラムでどう組み込めばよいのか分らないため、質問させて頂きました。 詳しい方、ご教授のほどお願いします。 (1)例えば「512x512」サイズの画像を figure に表示させ、その画像の中点を表示させる方法  (画像の中点に「×」マークをつけるイメージです) (2)上記の画像からマウスを使って、座標の始点と終点をクリックしたら"□"(選択範囲)の枠が表示される方法  (マウスを使って画像サイズを小さくしたいのが目的です) (3)上記の画像からマウスを使って、クリックした場所の座標(x軸、y軸)を figure に表示させる方法   (4)uigetdir からディレクトリ選択画面を表示して、指定したディレクトリの絶対パスを取得する方法 (5)画像データを imwrite する時、指定したパス(ディレクトリ)に出力する方法 全てでなくても、判る範囲までのご回答でもかまいません。 よろしくお願いします。

  • 【再】MATLABのcsvreadについて

    前回質問させて頂いたのですが、意味が分からないとの指摘を 頂きましたので、再度質問させていただきます。 何度も申し訳ないですが、ご存知の方がいらっしゃいましたら教えて下さい。 私がやりたいのは、CSV形式のファイル名を入力すると MATLABさんが入力されたファイル名を読み取って グラフを表示するといったことがしたいのです。 (フォルダ内にたくさんあるCSVファイルから、好きなのを選びたい) そのため、私はcsvreadの引数であるファイル名を変数として みましたが、文字列じゃないとダメだと怒られます。 下記に私の書いたものをそのまま載せますので、ダメな点を指摘していただければと思います。 <<Mファイル>> Prompt = {'対象文字','Figure Number '}; Title = 'Dialog'; Def={'A','1'}; set_Dialog = inputdlg(Prompt,Title,1,Def); filename1 = strcat(set_Dialog(1,1),'_1.csv'); filename2 = strcat(set_Dialog(1,1),'_2.csv'); fig_num = set_Dialog(2,1); ↓ここからわかりません。↓ >>xy = csvread(filename); ??? エラー ==> csvread の 32 行目ファイル名は文字列でなければなりません。 >>xy = csvread('filename2'); ??? エラー ==> csvread の 38 行目ファイルが見つかりません

  • Matlabで自作関数をオーバーロード

    Matlabの組み込み関数の中には、引数の数や戻り値の数に応じて異なる作用をするものが沢山あると思います。 例えば組み込みのmax関数だと y=max(x) ならxの第一次元にについての最大値を返しますし、 [y,i]=max(x) なら、さらに i に最大値のindexを代入、 一方 x=max(x,y) ならx,yの各要素について大きい方を取った行列を、 x=max(x,[],d) ならxのd次元についての最大化をしてくれます。 質問ですが、そういう関数を自分で作ることは可能ですか? function [z,w]=f(x,y) という風に関数を定義してしまうと、たとえyを関数中で利用しない場合でも、引数yを指定しなければエラーになってしまいます。同じ関数名でも呼び方に応じて異なった操作をさせることはできないでしょうか?

  • matlab初心者です。データ間でのf検定をしようと思ったのですが、

    matlab初心者です。データ間でのf検定をしようと思ったのですが、 ??? 未定義の関数、またはメソッド 'vartest2' (タイプ 'double' の入力引数)。 といったエラーが出てきました。 同じソースコードで3ヶ月前には普通にできたので現在パニック状態です。 ソースコードは以下のとおりです。 p1=(data); p2=(data); pp1=mean(p1(:,3:362),2); pp2=mean(p2(:,3:362),2); [h,p,ci,stats] = vartest2(pp1,pp2) どなたかアドバイスを頂けると助かります。 よろしくお願いします。

  • 【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を出力してみたりしてみましたがダメでした。 駄文となり申し訳ありません。 皆様の知識をお借りできれば幸いです。

専門家に質問してみよう