MATLAB创建GUI

1.matlab命令行输入guide,新建GUI图形界面,或者新建–应用程序–GUIDE,选择Blank GUI,选择路径。
2.在图形界面点击左侧控件和组件构建图形界面。MATLAB创建GUI_第1张图片
主要用到的控件和组件:
(1)按钮(选择文件,Run):双击,可编辑背景颜色、字体、字体颜色等,可在string编辑文本,Tag标记标签(在代码中的回调函数的名称来源)
MATLAB创建GUI_第2张图片
(2)可编辑文本(各个输入框)
(3)静态文本(“激光器功率(dBm)”等标注文本):双击可编辑背景颜色、文本内容、字体大小、颜色等。
(4)坐标区(出图的地方):axes1是绘图时图出现在的坐标区的名称,与使用的句柄相关。
(5)面板(“器件参数设置”等):将多个组件放置一起,双击可编辑文本,背景颜色等。
3.右击可查看回调函数(大部分代码不用编辑)
  以按键幅值为例,回调函数名称为fuzhi_Callback,此按键功能为导入txt文件,因此在原本代码后添加打开txt文本的代码,为了在点击Run按钮之后坐标区出现图,需要用到文本中数据,因此要用到全局变量。

% --- Executes on button press in fuzhi.
function fuzhi_Callback(hObject, eventdata, handles)
% hObject    handle to fuzhi (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
[filename,filepath]=uigetfile('*.txt','请选择文件');
file=fullfile(filepath,filename);
global A;
A=load(file);

4.使用外部函数以及出图
(1)在输入框中获得的数据,在代码中使用get语句,加上可编辑文本的Tag的句柄:

Pm=get(handles.Pm,'string');

(2)调用自己编写的外部函数:

[outsig_d,filter,inputRF,ifftpass_filter,fx_input,pass_filter]=xitong(A,X,str2double(Pm),str2double(RIN),str2double(fcenter_s),str2double(T1),str2double(B1),str2double(fcenter_x));

  由于从可编辑文本中获取的字符类型为string,因此需要用到字符转换语句str2double,转换为double类型,才能匹配函数内部设置的字符类型,否则不能将数据传入函数。函数输出为绘图的矩阵数据。外部函数的编程与matlab普通仿真一致。
(3)绘图输出需使用axes语句:

%% 绘图输出
axes(handles.axes1);
plot(t*1e9,abs(outsig_d)/max(abs(outsig_d)));grid on;hold on;
title('输出冲激响应图');xlabel('时间/ns');ylabel('幅度/归一化伏特');
xlim([-0.1 0.1]);

  句柄handle.axes1表示此图出现在Tag为axes1的坐标区内,标题、横纵坐标设置与matlab仿真一致。
5.将matlab程序封装为exe应用程序
  (1)在APP种找到Application Compiler打开,或者在命令行输入deploytool,进入Compiler界面后,点击Application Compiler,在Add main file中添加主文件(GUI编写代码那个),File require for your application to run中添加所有运行所需的其他文件(fig文件、自己写的函数m文件)要特别注意添加外部函数,有些在仿真种能使用的语句可能是其他人编写的函数,例如冲击函数dirac,如果没有将其一起打包,最后可能无法运行,其中fig文件是绘制的GUI界面。点击Package等待打包完成。其中有两张类型,一是matlab安装了Runtime,此时选择“Runtime downloaded from web”即可,生成的exe文件较小,所需时间较短,另一种即为没有安装Runtime,此时需要选择“Runtime included in package”,封装时间较长,在没有安装matlab的电脑上也可运行,此时安装软件前需安装runtime。
  (2)命令行输入mex -setup或mbuild -setup,若出现 未找到支持的编译器,则需下载MinGW-64 C/C++编译器,并在控制版面-系统-高级系统设置-环境变量种添加环境变量,变量值为安装目录。
  然后在matlab命令行输入setenv(‘MW_MINGW64_LOC’,‘路径’),然后输入mex -setup或mbuild -setup,随便选择一个编译语言。
  在matlab命令行输入mcc-m filename.m,“filename.m”为需要编译的m文件名称。执行完生成.exe、readme.txt、mccExcludeFiles.log、requredMCRProducts.txt四个文件,新建文件夹存放四个文件,然后将matlab安装路径下的“\toolbox\compiler\deploy\win64\MCRInstaller.exe”文件也放入文件夹。
此种方法安装运行后会出现黑框,好处是,如果软件不能正常运行,在黑框中的代码或许会找到问题原因(当时封装后Run不能出图,通过黑框的提示找到是封装函数中的问题)。消除黑框的办法有重新编译,命令行输入mcc -e filename.m。

你可能感兴趣的:(MATALB)