matlab app 学习笔记:新建app项目
本系列文章是我在学习matlab app编程过程重点经验总结,供参考,如有错误请指正。本系列文章会从创建app开始,逐步介绍一款数据处理软件的编程过程。本文章使用的是matlab2025a版本。
本系列文章是我在学习matlab app编程过程重点经验总结,供参考,如有错误请指正。
本系列文章会从创建app开始,逐步介绍一款数据处理软件的编程过程。
本文章使用的是matlab2025a版本。
新建项目
打开matlab,在左上角切换到APP页面,选择“设计App”。

在设计App的新建页面有三个选择,我们选择“空白App”,这样可以按照我们的需求设计App的样式,如果需求跟“两栏式app”或“三栏式app”吻合,可自行选择。

完成选择后,进入app设计界面,如下图。
上侧是菜单栏。
左侧是“组件库”,组件库是系统提供的,通过拖动即可添加到我们的设计中。
中间是设计区,分为“设计视图”和“代码试图”两个页面,这两个页面是app编程的可视化表达和代码表达,内容是一致匹配的。
右侧是“组件浏览器“区域,“组件浏览器“上侧是我们建立的组件目录,下侧是当前选择的组件的属性,常用属性都可以在这里设置。

通过刚才的新建动作,在“组件浏览器“中会自动生成一个对象:app.UIFigure,该对象是app的可视化根对象,是系统自动建立的,可以不用过多处理。该对象有几个属性需要我们注意:
WindowStyle
表达了当app打开时的状态:
normal:按设计时Position给的尺寸显示;
maximized:按最大化显示;如果Position给的尺寸不合适当前显示器,可以设置为maximized,让其全屏显示,显示效果不受Position设置影响;
minimized:按最小化显示;
fullscreen:按全屏显示。

Position
表达了app的开始位置和尺寸,默认是按像素设置,在UI Figure的属性Unit中可以设置为其他方式,这里不做介绍。
Position有四个参数:[x,y,width,height],表达了appUIfigure的左下角起始位置(x,y),图窗appUIfigure的宽度和高度。其实际的表达方式是数组[x,y,width,height]。
我们的第一个app就按照这个数组来设置[10,60,1520,860],这个尺寸的设置在1920*1080的屏幕上是在全屏的基础上有一圈小间隙。
![]()

Name
name是修改app的名称,即当app运行时,在左上角显示的名称。如:第一个app。

Icon
icon可以设计app的图标,即左上角显示的图标。icon支持的格式是。需要将图片所在路径添加到matlab路径或者将图片放到app文件夹(或下属文件夹)才能使用。

其他参数按照系统默认即可,后续熟悉了app编程再自行修改。
保存app,将其命名为app_01.mlapp。
点击运行按钮,得到如下效果。


代码结构
点击代码视图。可以查看到系统自动生成和我们修改设置生成的代码。

由代码可知,app建立后,系统自动生成了一个类(class):app_01,这个类是继承自matlab.apps.AppBase类。类下面包括了三种对象:
properties (Access = public)
这种对象是:公共属性。类自身的对象、function可以访问,外部对象也可以访问。
properties 内有一个系统自带的对象:appUIFigure matlab.ui.Figure
appUIFigure是对象名称,matlab.ui.Figure是对象类型。
methods (Access = private)
这种对象是:私有函数。只有app_01的内部对象和函数和访问。
有一个函数:function createComponents(app),我们所有新建的组件都会再这个函数种,且对组件的属性设置也会再这里。
app.appUIFigure = uifigure('Visible', 'off');
app.appUIFigure.Position = [10 60 1520 860];
app.appUIFigure.Name = '第一个app';
app.appUIFigure.Icon = fullfile(pathToMLAPP, 'icon01.png');
matlab中通过“.”来修改属性,如:app.appUIFigure.Name = '第一个app';Name属性是字符属性,所有赋值要给字符或者字符串,即用单引号或者双引号括起来。Position属性是数组属性,所有要用方括号括起来。
函数中还有一行代码,代码中有两个函数,我们可以熟悉,后续会用到。分别是:fileparts和mfilename。
pathToMLAPP = fileparts(mfilename('fullpath'));
mfilename函数用于获取当前运行代码的文件名,可以使用"fullpath" 或 "class" 作为参数调用,fullpath用于获取完整带路径的文件名,class用户获取它的类。
fileparts函数用户获取文件名中的路径、短文件名、扩展名。语法如下:
[filepath,name,ext] = fileparts(filename)
其中,filepath是路径,name是文件名,ext是扩展名。 该函数的返回值可以是[filepath,name,ext]、[filepath,name]、filepath,使用时等号左边的数组元素个数决定了返回值的多少。
methods (Access = public)
这种对象是:公共函数。app_01或者外部的代码都可以访问。
本节完整的代码如下:
classdef app_01 < matlab.apps.AppBase
% Properties that correspond to app components
properties (Access = public)
appUIFigure matlab.ui.Figure
end
% Component initialization
methods (Access = private)
% Create UIFigure and components
function createComponents(app)
% Get the file path for locating images
pathToMLAPP = fileparts(mfilename('fullpath'));
% Create appUIFigure and hide until all components are created
app.appUIFigure = uifigure('Visible', 'off');
app.appUIFigure.Position = [10 60 1520 860];
app.appUIFigure.Name = '第一个app';
app.appUIFigure.Icon = fullfile(pathToMLAPP, 'icon01.png');
% Show the figure after all components are created
app.appUIFigure.Visible = 'on';
end
end
% App creation and deletion
methods (Access = public)
% Construct app
function app = app_01
% Create UIFigure and components
createComponents(app)
% Register the app with App Designer
registerApp(app, app.appUIFigure)
if nargout == 0
clear app
end
end
% Code that executes before app deletion
function delete(app)
% Delete UIFigure when app is deleted
delete(app.appUIFigure)
end
end
end
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)