我想通过单击按钮来显示命令窗口中显示的结果

matlab user-interface command-line matlab-figure matlab-guide

391 观看

1回复

3 作者的声誉

我想通过单击按钮来显示命令窗口中显示的结果。

我的意思是,我创建了一个函数,当我运行该函数时,结果将显示在matlab命令窗口中。

现在,我正在使用matlab gui制作一个界面,并希望通过单击按钮在文本框中显示该结果。为此,我在gui中调用此函数,但在命令窗口中获取结果。

结果包含数字和单词(大约5行)

在此处输入图片说明

如何将结果从命令窗口重定向到GUI文本框?

function pushbutton4_Callback(hObject, eventdata, handles) 
global E1; 
global E2; 
results=NPCR_and_UACI(E1,E2);
作者: bia 的来源 发布者: 2016 年 5 月 1 日

回应 (1)


0

4674 作者的声誉

决定

最简单的方法是直接在“ NPCR_and_UACI”函数中构建字符串,将其设置为该函数的附加输出,然后将其分配给statictext框。

可能的替代方法可能是:

  • 使用日记在文本文件上激活输出记录
  • 逐行读取diary文件
  • 将行存储在 cellarray
  • 将cellarray设置为statictext string框的

您可以使用tempname创建一个唯一的文件名

在该过程结束后,就可以删除与临时日记文件删除

如果要在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')

在此处输入图片说明

希望这可以帮助。

卡普拉

作者: il_raffa 发布者: 01.05.2016 08:37
32x32