我在matlab中创建了一个带有几个按钮的GUI。单击每个按钮执行特定功能。现在我想显示要在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;
我用代码中指定的代码替换了代码。当我选择第二个文件时,不使用文本框,matlab命令窗口中的输出是
not matched
matched
not matched
not matched
not matched
但如果我使用静态文本框,则只显示最后一行。如何完全显示所有5行?
答案 0 :(得分:2)
是的,你可以这样做。
一个好的做法是使用guidata函数保存包含GUI元素所有句柄的结构。有关详细信息,请参阅this link。
然后在您的回调中,您可以检索此结构,例如:
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