demo:用matlab app designer做一个简易app

本文介绍如何使用Matlab的APPDesigner创建一个简易应用,该应用利用AlexNet模型和摄像头实现对象识别,并介绍了与传统GUI相比的新特性及编程差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GUI(guide)的教程挺多,但app designer是matlab后续版本中才添加的,界面更友好但度娘资源比较少
1、点击新建—APP设计工具,或者直接在命令行输入appdesigner运行
在这里插入图片描述
2、拖动画布上的图标,大概建立这样一个布局
在这里插入图片描述
右下角属性中可以设置一些基本参数,选择代码视图,属性中可选项更多,比如Xlim,Ylim,颜色,字号等
3、在按钮上右键,函数回调,光标自动到指定区域,进行编程
简单写个调用Alexnet和笔记本摄像头进行识别的函数吧
app和guide的许多语法变了,比如,

1、赋值不再是set(…)语句,而是app.变量名.Value
2、绘图imshow(picture ,‘Parent’,app.UIAxes),原先的axes(…),imshow(axes…)已经不能使用了
3、plot没怎么变,唯一就是改成了app.如 plot(app.a,x,y)

加载网络按钮回调
(加载我单独拿出来了,省的每次运行都加载很慢。最初打算用 if exist(‘nnet’) == 0来判断,不知道为啥不行,全局变量?)
确保多个按钮函数共享参数,每次都要定义全局变量。

            global nnet;
            global A ;
            nnet = alexnet;
            A = 0;%识别开始与停止判断参数
            char_str = '网络加载完毕!';
            app.title.Value = char_str;

运行按钮

            global A
            global nnet;
            camera = webcam;%调用电脑摄像头
            A=1;
            while A
                picture = camera.snapshot;              % Take a picture
                picture = imresize(picture,[227,227]);  % Resize the picture
                label = classify(nnet, picture);
                label = char(label);
                imshow(picture ,'Parent',app.UIAxes)
                app.title.Value = label;
            end

停止按钮

          global A
          A=0;

4、运行
在这里插入图片描述
6、导出为可执行文件
stp1

在这里插入图片描述
stp2
在这里插入图片描述
等一会之后,就可以得到单独的exe文件,可以不用打开matlab使用(用户电脑需要有matlab,可以选择完全打包,但是文件要大得多得多)
在这里插入图片描述

<think>我们正在处理一个关于MATLAB App Designer创建GUI应用程序的教程请求。用户要求提供指南或教程,因此我们需要组织一个结构清晰的回答,介绍如何使用MATLAB App Designer创建GUI应用程序。 根据引用[1]和引用[2],我们知道有一些基础教程视频和示例。我们可以参考这些资料,同时结合一般知识,提供步骤指导。 回答结构: 1. 简介MATLAB App Designer及其优点。 2. 创建新App的基本步骤(启动、界面布局、组件属性设置)。 3. 编写回调函数以实现交互(参考引用[2]中的例子)。 4. 运行和调试App。 5. 保存和分享App。 此外,根据系统指令,我们需要在回答末尾生成相关问题。 注意:引用[3]提供了一个简单的计算利息的示例,我们可以借鉴其代码结构,但我们的回答重点在于创建步骤。 由于用户要求的是教程,我们将分步骤讲解,并尽量使用简单明了的语言。 最后,生成的相关问题应围绕MATLAB App Designer的深入使用和常见问题。</think>### MATLAB App Designer 创建 GUI 应用程序指南 MATLAB App DesignerMATLAB 提供的可视化开发环境,用于创建交互式图形用户界面(GUI)应用程序。它结合了拖拽式界面设计和自动代码生成功能,大幅简化了 GUI 开发流程[^1]。 #### 一、基础操作步骤 1. **启动 App Designer** 在 MATLAB 命令窗口输入 `appdesigner` 或通过主页选项卡 → 应用程序 → 设计应用程序打开。 2. **界面布局设计** - 左侧组件库提供按钮、文本框、坐标区等控件(如引用[2]中的 Lamp 控件) - 拖拽组件至中央画布,通过属性检查器调整外观(位置、颜色、字体等) - 使用网格布局管理器实现响应式设计 3. **设置组件属性** 在属性检查器中修改关键属性: ```matlab % 示例:设置按钮文本 app.Button.Text = '开始计算'; app.Button.BackgroundColor = [0.2, 0.6, 1]; ``` 4. **添加交互逻辑** 双击组件自动生成回调函数框架(如引用[2]的数值输入框回调): ```matlab % 编辑框值改变回调(参考引用[2]) function EditFieldValueChanged(app, event) inputVal = app.EditField.Value; if inputVal > 100 app.Lamp.Color = 'red'; % 控件状态联动 end end ``` #### 二、核心功能实现 1. **数据传递机制** 使用 `app.` 前缀共享数据(如引用[3]的金融计算): ```matlab % 跨组件数据调用示例 function CalculateButtonPushed(app, event) principal = app.PrincipalEditField.Value; % 获取本金 rate = app.RateEditField.Value; % 获取利率 interest = principal * rate; % 计算利息 app.ResultLabel.Text = num2str(interest); % 显示结果 end ``` 2. **图形可视化** 在坐标区(UIAxes)显示动态图表: ```matlab function PlotButtonPushed(app, event) x = linspace(0, 2*pi, 100); y = sin(x); plot(app.UIAxes, x, y); % 指定在UIAxes绘图 app.UIAxes.Title.String = '正弦波形'; end ``` 3. **错误处理** 增加输入验证提升鲁棒性: ```matlab function ValidateInput(app, value) if isnan(value) uialert(app.UIFigure,'请输入数字','数据类型错误'); end end ``` #### 三、高级技巧 1. **状态管理** 使用 `Visible` 和 `Enable` 属性控制组件状态(如引用[2]的温度监控): ```matlab app.WarningLabel.Visible = 'off'; % 初始隐藏警告 if temperature > 500 app.WarningLabel.Visible = 'on'; % 条件触发显示 end ``` 2. **多窗口应用** 创建新窗口并传递数据: ```matlab function OpenConfigButtonPushed(app, event) configWin = ConfigWindow(app); % 自定义窗口类 configWin.MainApp = app; % 传递主应用引用 end ``` 3. **打包部署** 通过「应用程序」选项卡 → 打包 → 生成独立桌面应用(需 MATLAB Compiler 许可证)。 #### 四、学习资源推荐 1. [官方文档](https://mathworks.com/help/matlab/app-designer.html) 2. 视频教程:[Bilibili MATLAB GUI 设计全集](https://www.bilibili.com/video/BV16f4y147x9)(含 Lamp 控件实战)[^1][^2] 3. 交互式课程:MATLAB Onramp → App Building 模块 > **提示**:调试时可在回调函数中添加 `disp(app)` 查看当前应用对象结构,或使用 `debug` 命令设置断点。
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值