• ベストアンサー

MATLABのguiで別画面を表示する方法

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

  • aneja
  • お礼率93% (379/405)

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

  • ベストアンサー
  • sgwjn
  • ベストアンサー率70% (47/67)
回答No.1

1~2行表示するだけでしたらmsgbox関数かなにかで十分だと思います。 もう少し量があるのでしたら、guideでリストボックスでも置いたウィンドウを作り、そのFigファイルに対応して自動生成されるMファイルをボタンのコールバック関数内で呼べばOKです。 計算結果は、グローバル変数か呼出されるウィンドウの引数で渡せます。 例) メイン画面 > main.fig & main.m サブ画面  > sub.fig & sub.m % 計算ボタンのコールバック function PushButton   % resultが文字列ではない場合   sub(result);   % resultが文字列の場合   sub([], result);   % グローバル変数で渡す場合   global RESULT   RESULT = result;   sub; % sub.m内のウィンドウOPEN関数 % 関数名、引数、戻り値はうろ覚え function sub_OpenFcn(varargin)   % resultが文字列ではない場合   result = varargin{1};   % resultが文字列の場合   result = varargin{2};   % グローバル変数で渡す場合   global RESULT   result = RESULT;   % リストか何かに表示   ...

aneja
質問者

お礼

お礼が遅くなって、どうもすみません。ご回答どうもありがとうございました。ウィンドウに独自の引数を追加できるのですね。どこにも例が見つけられず、思いつきませんでした。とても助かりました。ありがとうございました。

関連するQ&A

  • MATLABのGUIDEでフォルダ内の画像ファイルを表示する方法。

    MATLABのGUIDEでフォルダ内の画像ファイルを表示する方法。 MATLABのGUIDE内であらかじめボタンやパネルなどを配置するときに 背景色の変更のように背景に画像を設定することはできないのでしょうか? できなければmファイル内でのプログラミングでもいいので 画像ファイルを読み込んでGUIで背景表示させる方法を教えてください。

  • MATLABのGUIについて教えていただけないでしょうか。

    MATLABのGUIについて教えていただけないでしょうか。 今、128x128pixelの画像が40枚でセットになっているデータ(人間の脳みそのMRI画像なんですが)がmatファイルに保存されています(変数tempA. size(A) = 128x128x40)。これをGUIで読み込んでスライドバーで次々に切り替えて表示したいのですが、うまくいきません。(つまり40枚のうちの1枚が表示された状態でスライドバーを動かすと残りの39枚が順番につぎつぎ表示される状態にしたい) GUIDEを使ってuiloadでmatファイルを読み込んで表示するところまではいいのですが、スライドバーのCallback内に slider1=findobj('tag','slider1');slice=round(get(slider1,'value'));image(tempA(:,:,slice)); と記述すると、tempAは定義されていないとエラーが返ってしまいます。同じMファイル内で一度は使われている変数なのに?? どなたか解決策を教えていただけないでしょうか。 UICONTROLのvalueを表示された画像にリアルタイムに反映するにはどのような方法がありますか? よろしくお願いいたします。

  • MATLABのmexでLAPACKを使う方法

    MATLABのmexで、LAPACKを使いたいのですが、 サイバーネットのページを見ても良くわからず、 困っています。 逆行列の計算方法で、とある方法を思いついたので、 試したいのですが、m-fileでは遅くなってしまうので、 mexで作りたいのです。 そこで、LAPACKにすでにあるものは利用したいのですが、 どのようにしたらよいか、わからないのです。。。 WindowsでCLAPACKを使う方法がわかればそれでも良いのですが・・・ (Unix, Linuxは使っていません) よろしくお願いします。

  • MATLABのグラフの書き方について

    MATLABでfftをかけてその結果をグラフに出力したいのです。標本数は64個でグラフに出力したいのは始めの32個を出力したいのですが、その方法が分からないので教えてもらえないでしょうか?いろいろ調べたのですが分からないのでよろしくお願いします。

  • matlabの行列計算の最大サイズはいくつですか?

    顔認識の研究にmatlabを使用していますが 複数の普通の画像をそのまま行列にすると 87500×87500やそれ以上のサイズの 分散共分散行列を計算することになってしまい 「メモリが足りません」 と表示されます。 どのくらいのサイズまでmatlabは計算できるのでしょうか? また、3*90000くらいの大きなサイズの行列から covを使わないで(というか大きすぎて使えない) 分散共分散行列を求める方法があったら教えてください!

  • MATLABにおける行の挿入方法

    こんにちは,現在データ整理のためにMATLABを用いて以下のようなプログラムを構築しています 1.ファイルを読み,その値を100行7列の行列Aとする 2.Aの10行目と11行目の間に1行7列の行列B1を挿入する (イメージ的にはEXCELの行の挿入です) 3.同様に20行目と21行目の間に1行7列の行列B2を挿入する 4.以降10行ごとに繰り返す となります.ここで2の処理にあたる「行列の特定の列の間に別の行列を挿入する」方法がわかりません いろいろ調べたのですが、このような方法はどこにもありませんでした MATLABに詳しい方,教えていただけないでしょうか?

  • 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のtxtファイル等の読み込みについて

    この度はよろしくお願い致します。 現在、MATLABを用いて計算やグラフ描写のプログラムを書いておりますが、 予めそのプログラムをテキストファイル等に記入しておき、そのファイルをMATLABが読み取り、プログラムを実行させると言う、マクロの様な機能や方法がありましたら是非ご教授いただけないでしょうか。 よろしくお願い致します。

  • matlabを使用したfor文の計算

    matlabのfor文を使用し,計算をしています. for文を使用し計算すると, ans= ans=   ・   ・   ・ のような形で結果が出て,そのままファイルに出力すると最後の演算の結果のみが出力されてしまいます. この結果を縦に並べて行列の形で格納しなおしたのですが,この場合どのような式を組んだらいいのを教えていただければと思います.

  • MATLABの使い方

    純粋な数学の質問じゃなくて申し訳ないのですが、数学に関することなのでここで質問させていただきました。MATLABを使って以下のことを計算させたいのですが、その入力の仕方を教えてください。 1.以下の近似値を求めよ。 (1)e=lim[n→∞](1+1/n)^n (2)e=Σ[n=0→∞]1/(n!) (3)π=4(1-1/3+1/5-1/7+…) (4)π=4{4(1/5-1/(3・5^3)+1/(5・5^5)-…)-(1/239-1/(3・239^3)+1/(5・239^5)-…)}  (5)100^(1/9) (6)5^(-x)=x 2.以下の関数のグラフを表示させる  (1)e^(-x)・Arctanx (-5≦x≦5)  (2)x=(t^2-t-3)e^(t)・cost,y=(t^2-5t+1)e^(t)・sint (-1≦t≦10) MATLABに関してはまったくの初心者なので、できれば入力方法を具体的に示していただければ幸いです。よろしくお願いします。

専門家に質問してみよう