我想通过单击按钮显示命令窗口中显示的结果。
我的意思是,我创建了一个函数,当我运行该函数时,结果显示在matlab命令窗口中。
现在我正在使用matlab gui创建一个界面,并希望通过单击按钮在文本框中显示该结果。为此,我在gui中调用此函数,但在命令窗口中获取结果。
结果包含数字和单词(约5行)
如何将结果从命令窗口重定向到GUI文本框?
function pushbutton4_Callback(hObject, eventdata, handles)
global E1;
global E2;
results=NPCR_and_UACI(E1,E2);
答案 0 :(得分:0)
最简单的方法是直接在" NPCR_and_UACI"中构建字符串。 function,将其设置为函数的附加输出,然后将其分配给statictext框。
可能的替代方案可能是:
diary
文件cellarray
string
您可以使用tempname
创建唯一的文件名在流程结束时,您可以使用delete删除临时日记文件。
如果要在recylce文件夹中移动已删除的文件,则应设置recycle on
。
在下文中,您可以找到该过程的可能实现;为了它,我创造了一个"虚拟" NPCR_and_UACI功能和"评论" global varaibles
。
function pushbutton4_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% global E1;
% global E2;
E1=1;
E2=2
results=NPCR_and_UACI(E1,E2);
% Create a unique filename
tmp_file=tempname
% Activate diary recording
format long
diary(tmp_file)
% Display the output on the Command Window
disp(results)
% Turno disry off
diary off
% Open the diary file
fp=fopen(tmp_file)
% Initialize the string
res_string={};
% Initialize the row counter
cnt=0;
% Read the diary file line by line
while 1
tline = fgetl(fp);
if ~ischar(tline)
break
end
% Increment the rwo counter and store the current line
cnt=cnt+1;
res_string{cnt}=tline
end
% Close the diary file
fclose(fp)
% Enable moving the file to the recycle folder
recycle('on')
% Delete the diary file (move it in the recycle folder
delete(tmp_file)
% Setr the result string in the statictext box
set(handles.text2,'string',res_string,'horizontalalignment','left','fontname','courier')
希望这有帮助。
Qapla'