1

ボタンがほとんどないmatlabでGUIを作成しました。各ボタンをクリックすると、特定の機能が実行されます。ここで、関数で実行されている計算を表示して、GUI の静的テキスト ボックスに表示したいと考えています。それは可能ですか?文末のセミコロン(;)を外せばコマンドウィンドウに表示できるのですが、ログのようにGUIに表示したいです。

「一致」ボタンをクリックすると、次の関数が呼び出され、GUI のテキストボックスに一致するかどうかを表示したいと考えています。それは可能ですか?

function matchin
[image1, pathname]= uigetfile('*.bmp','Open An image');
Directory = fullfile ('F:','matlab','bin');
D = dir(fullfile(Directory,'*.bmp'));
%imcell = {D.name}';
for i = 1:numel(D)
   if strcmp(image1,D(i).name)
       disp('matched');
   else
       disp('not matched');
   end
end;

コードを回答で指定されたものに置き換えました。テキスト ボックスを使用しないと、2 番目のファイルを選択したときの matlab コマンド ウィンドウの出力は次のようになります。

not matched
matched
not matched
not matched 
not matched

しかし、静的テキスト ボックスを使用すると、最後の行だけが表示されます。5行すべてを完全に表示するにはどうすればよいですか?

4

1 に答える 1

2

はい、できます。

関数 guidata を使用して、GUI 要素のすべてのハンドルを含む構造体を保存することをお勧めします。詳細については、このリンクを参照してください。

次に、コールバックで、たとえば次のようにして、この構造を取得できます。

handles = guidata(gcbo);

次に、置き換えて、必要なテキストボックスの値を設定できます

if strcmp(image1,D(i).name)
   disp('matched');
else
   disp('not matched');
end

と:

if strcmp(image1,D(i).name)
   set(handles.handle_of_textbox,'String','matched');
else
   set(handles.handle_of_textbox,'String','not matched');
end
于 2013-03-22T11:00:35.340 に答える