• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MATLABのGUI作成についての質問です。)

MATLABのGUI作成についての質問です。どのようにしたらマウスでクリックした点の座標の値を取得できますか?

このQ&Aのポイント
  • MATLABのGUI作成についての質問です。貼り付けた画像のようなGUIを作成したいです。プッシュボタンを押すとaxes1に行列を呼び出してカラーとして表示させ、axes1上でマウスをクリックすると、その座標をエディットテキストに出力するようなGUIを作成したいです。
  • MATLABのGUI作成についての質問です。プッシュボタンのコールバックに行列の呼び出しとカラーの表示を定義しています。ただし、マウスでクリックした点の座標の値をエディットテキストに出力する方法がわかりません。
  • MATLABのGUI作成についての質問です。マウスでクリックした点の座標の値を取得してエディットテキストに出力するにはどのようにすれば良いでしょうか?

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

  • ベストアンサー
  • Kules
  • ベストアンサー率47% (292/619)
回答No.1

ん~ とりあえずMatlabに(おそらく)標準装備されている「GUI builder」を使うというのはダメなんでしょうか? それならCallBack関数やらWindowButtonDownFcnやら全部設定できるのでお手軽(慣れるまではどこで何を定義すればいいのかわからないのであせる)なのですが。 使わない、というのであれば set(gcf,'WindowButtonDownFcn','String'); とすれば、マウスのボタンをクリックした時に文字列Stringが実行されますので、直接処理内容を書きこんでもいいですし、 「 function Hoge …(実行したい内容) return 」 というファイルを作ってHoge.mという名前で保存し、 set(gcf,'WindowButtonDownFcn','Hoge'); としてもいいでしょう。 今回の処理で言うなら、 ・Imageが描かれたaxesのハンドル ・テキストエディットのハンドル(2つ) を明らかに出来れば実行できそうですね。 簡単に書きます。 「 function Hoge(handle) H=guidata(handle); a=get(H.ax,'CurrentPoint'); set(H.t1,'String',num2str(a(1,1))); set(H.t2,'String',num2str(a(1,2))); return; 」 ここまでをHoge.mとして保存し、パスが通っているところ(My Document\MATLAB でもいいですし、カレントディレクトリでも構いません)に置きます。 H.f=figure; H.ax=gca;% Imageが描かれたハンドル H.t1=uicontrol('Style','Edit');%エディットボックスその1 H.t2=uicontrol('Style','Edit');%エディットボックスその2 guidata(H.f,H); set(H.f,'WindowButtonFcn','Hoge(H.f);'); これで所望の動作をすると思います。(今Matlabが動く環境にいないのでエラーが出るかも知れません) 必要最低限のことしかしていないので、バグにはものすごく弱いです。少し変なことをすればすぐエラーが出ると思います。 動かないor何をしているか分からない!要解説!orこんなエラーが出るんだけどどうすれば防げるの? などありましたら補足願います。 参考になれば幸いです。

central-island
質問者

お礼

なんとか解決できました。 ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • MATLABのGUI、画像表示について

    GUIDEで設計したGUIのaxes1に画像を表示させようとしているのですが、 simulink上のMファイルに a = imread('a.jpg'); image(a); のようにimageを記述して、GUI上のオブジェクトを指定するにはどうしたらよいのでしょうか?? 新たにfigureを立ち上げるのではなく、GUIに表示させる方法がわからず困っています。 初心者なのでわからないことだらけですが、よろしくお願いします!

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

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

  • GUIとは何でしょうか?(定義)

    GUIとは何でしょうか?(定義) こんにちは VB.NETで開発を行っている者ですが、 VBに限らない話題なのでここに投稿させていただきます。 通常「GUI」というときはボタンやテキストボックスなどがあり、 ユーザからマウスやキーボードなどで入力を受け付ける画面をいいますよね? Wikipediaでの定義は 「コンピュータグラフィックスとポインティングデバイスを用いて、直感的な操作を提供するユーザインタフェース」(抜粋) となっています。 では、ユーザの入力を一切受け付けないフォーム (例えばバッチ処理の進捗状況を表示するなどの完全に表示専用の画面) を作った場合、それはGUIとは呼べないのでしょうか。 呼べない場合、変わりにどのように呼称すべきでしょうか。 ご回答よろしくお願いします。

  • 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のguiで別画面を表示する方法

    MATLAB 7.5.0(R2007b)、Windows版です。guideでGUIツールを作成しているのですが、計算結果(1000行くらいの実数の行列)を別ウィンドウで出力したいのですが、やり方がわかりません。基本的すぎるのか、結構時間をかけてWeb上や書籍を探したのですが、方法が見つかりませんでした。 GUI上の「計算」ボタンを押したら、その結果(グラフではなく、計算結果の数字)が別ウィンドウで表示され、スクロールバーで中身を見れるというものをイメージしているのですが、どなたかその方法をご存知の方、教えて下さい。

  • 座標の入出力ができるLinuxソフトウェア

    Linuxに詳しい方で、以下の機能を持つfree softwareをご存知な方がいましたら、 教えていただけますでしょうか? (1) GUIで2次元座標系にマウスで点を打つことができる。 (2) 打った点の座標を何らかの形式でテキストファイルに出力できる。

  • コンソールアプリをGUIで実行させるには?

    Hellow Worldのようなコンソールアプリa.outがあります。 GUI上でダブルクリックして、開きたいのですが無反応です。 端末アプリ gnome-terminalから ./a.outとするとHellow Worldと表示されます。 このHellow Worldのコンソールアプリにはファイル名を引数を入れるとそのファイルの中身を読んでそのまま表示するプログラムです。 あるテキストファイルをダブルクリックして、このa.outを実行してテキストファイルの中身を表示させるようにしたいのですが、a.outはGUIアプリじゃないとこういうことはできないのでしょうか?

  • VMware PlayerでFedoraCore4を起動して、GUI表示させる方法を教えてください。

    どうも、はじめまして。 ホストOS WindowsXPにVMware Player1.0をインストールして、 ゲストOS LinuxのFedoraCore4を起動しています。 テキストモードでFedoraCore4が起動するので GUI表示させようと思い、/etc/inittabのコード id:3:initdefault:を id:5:initdefault:に 変更しました。 しかし、再起動してもGUI表示されず、テキストモードで 表示されます。 runlevelを確認すると N 5 と表示され、runlevelの設定変更はされているようです。 Ctrl+F7で表示切り替えを行ってみたのですが、 テキストモードのままです。 GUIとテキストモードの切替方法が未だに分からずに います。 打開する方法があれば、教えてください。 よろしく、お願いします。

  • Mac ホームページ作成方法

    Windowsだとメモ帳でhtmlタグを使ってホームページを作れますが、 Macではどうやってホームページを作成できるんですか? ちなみにテキストエディットでやってみたら タイトルは「index.html」にして保存。 ダブルクリックしたら タグが反映されないでテキストエディットに書いたままの状態で表示されました。 回答よろしくお願いしマす。

  • IllustratorCS3でのJavascriptを使ったGUIコントロールについて

    IllustratorCS3でJavascriptを使ったGUIコントロールの使い方について質問です。 Javascriptで以下のようにテキストボックスの横に参照ボタンを置き、ボタンをクリックすると「ファイル選択」ダイアログを表示し、そこで選択したファイルのパスをテキストボックスに表示したいと思っています。 以下のようなソースを作成しました。 winObj = new Window("dialog","テキスト変換ツール",[100,50,330,200]); sbtnObj=winObj.add("button",[180,20,220,40],"参照"); ftxtObj=winObj.add("edittext",[10,10,180,40],"ファイル名を入力してください。"); sbtnObj.onClick=function(){ ffilename=File.openDialog("テキストファイルを指定してください。"); if(ffilename){ ftxtObj.text=ffilename; } } これですと、参照ボタンをクリックしてファイルを選択すると、テキストボックス(ftxtObj.text)に「File」と表示されてしまいます。ここには選択したファイルのパスを表示したいのですが、どなたかご存知の方がいらっしゃいましたらよろしくお願いします。