解决方案

MATLAB创建GUI

seo靠我 2023-09-24 07:41:25

1.matlab命令行输入guide,新建GUI图形界面,或者新建–应用程序–GUIDE,选择Blank GUI,选择路径。

2.在图形界面点击左侧控件和组件构建图形界面。

主要用到的控件和组件:

(1)按SEO靠我钮(选择文件,Run):双击,可编辑背景颜色、字体、字体颜色等,可在string编辑文本,Tag标记标签(在代码中的回调函数的名称来源)

(2)可编辑文本(各个输入框)

(3)静态文本(“激光器功率(dBSEO靠我m)”等标注文本):双击可编辑背景颜色、文本内容、字体大小、颜色等。

(4)坐标区(出图的地方):axes1是绘图时图出现在的坐标区的名称,与使用的句柄相关。

(5)面板(“器件参数设置”等):将多个组件SEO靠我放置一起,双击可编辑文本,背景颜色等。

3.右击可查看回调函数(大部分代码不用编辑)

以按键幅值为例,回调函数名称为fuzhi_Callback,此按键功能为导入txt文件,因此在原本代码后添加打开txtSEO靠我文本的代码,为了在点击Run按钮之后坐标区出现图,需要用到文本中数据,因此要用到全局变量。% --- Executes on button press in fuzhi. functiSEO靠我on fuzhi_Callback(hObject, eventdata, handles) % hObject handle to fuzhi (see GCBO) SEO靠我% eventdata reserved - to be defined in a future version of MATLAB % handles structure with SEO靠我handles and user data (see GUIDATA) [filename,filepath]=uigetfile(*.txt,请选择文件); fileSEO靠我=fullfile(filepath,filename); global A; A=load(file);

4.使用外部函数以及出图

(1)在输入框中获得的数据,在代码中使SEO靠我用get语句,加上可编辑文本的Tag的句柄: Pm=get(handles.Pm,string);

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

[outsig_d,filter,inputRF,ifftpass_filSEO靠我ter,fx_input,pass_filter]=xitong(A,X,str2double(Pm),str2double(RIN),str2double(fcenter_s),str2doubleSEO靠我(T1),str2double(B1),str2double(fcenter_x));

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

(3)绘图输出需使用axes语句:%% 绘图输出 axeSEO靠我s(handles.axes1); plot(t*1e9,abs(outsig_d)/max(abs(outsig_d)));grid on;hold on; titlSEO靠我e(输出冲激响应图);xlabel(时间/ns);ylabel(幅度/归一化伏特); xlim([-0.1 0.1]);

句柄handle.axes1表示此图出现在Tag为axes1的坐SEO靠我标区内,标题、横纵坐标设置与matlab仿真一致。

5.将matlab程序封装为exe应用程序

(1)在APP种找到Application Compiler打开,或者在命令行输入deploytool,进入SEO靠我Compiler界面后,点击Application Compiler,在Add main file中添加主文件(GUI编写代码那个),File require for your applicationSEO靠我 to run中添加所有运行所需的其他文件(fig文件、自己写的函数m文件)要特别注意添加外部函数,有些在仿真种能使用的语句可能是其他人编写的函数,例如冲击函数dirac,如果没有将其一起打包,最后可SEO靠我能无法运行

,其中fig文件是绘制的GUI界面。点击Package等待打包完成。其中有两张类型,一是matlab安装了Runtime,此时选择“Runtime downloaded from web”即SEO靠我可,生成的exe文件较小,所需时间较短,另一种即为没有安装Runtime,此时需要选择“Runtime included in package”,封装时间较长,在没有安装matlab的电脑上也可运行,SEO靠我此时安装软件前需安装runtime。

(2)命令行输入mex -setup或mbuild -setup,若出现 未找到支持的编译器,则需下载MinGW-64 C/C++编译器,并在控制版面-系统-高级系SEO靠我统设置-环境变量种添加环境变量,变量值为安装目录。

然后在matlab命令行输入setenv(‘MW_MINGW64_LOC’,‘路径’),然后输入mex -setup或mbuild -setup,随便SEO靠我选择一个编译语言。

在matlab命令行输入mcc-m filename.m,“filename.m”为需要编译的m文件名称。执行完生成.exe、readme.txt、mccExcludeFiles.lSEO靠我og、requredMCRProducts.txt四个文件,新建文件夹存放四个文件,然后将matlab安装路径下的“\toolbox\compiler\deploy\win64\MCRInstalleSEO靠我r.exe”文件也放入文件夹。

此种方法安装运行后会出现黑框,好处是,如果软件不能正常运行,在黑框中的代码或许会找到问题原因(当时封装后Run不能出图,通过黑框的提示找到是封装函数中的问题)。消除黑框的SEO靠我办法有重新编译,命令行输入mcc -e filename.m。
“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2