(三)Appdesigner-界面转换及数据导入和保存

提示:文章为系列文章,可以在对应学习专栏里面进行学习。对应资源已上传

目录

前言

一、Appdesigner是什么?

二、界面切换

三、数据导入及保存

(一)数据导入

(二)数据保存

总结


前言

        Appdesigner是MATLAB中进行软件开发的部分,可以创建exe文件,脱离MATLAB的运行环境,生成独立的App。本文首先介绍了Appdesigner是什么,并介绍了两个功能的程序设计方法,第一个是程序界面之间的切换功能,另一个是程序数据的导入和保存功能。之后,博主会介绍更多的Appdesigner程序设计技巧和功能,并上传示例资源,大家可以根据实际需求拓展使用示例程序。


一、Appdesigner是什么?

        MATLAB中的Appdesigner是实现人机交互的重要平台,可以将程序和仿真进行封装,生成对应的App软件,是程序展示的一种重要形式。我们可以通过MATLAB进行程序的编写,但是程序的使用者有时并不需要了解程序的内部构成,更加关注程序的使用功能,因此需要一种良好的程序交互界面,也就是MATLAB中之前使用的GUI功能,但是相比之下,Appdesigner是以组件的形式自动生成程序,构建界面,更加的简便和高效,有取代GUI的趋势,因此掌握Appdesigner的编写技巧,构建良好的人机交互界面是一项重要的技能。

二、界面切换

        界面切换的原很简单,就是创建一个按钮,增加相应的回调函数,通过关闭当前界面,打开对应的其他界面来实现界面之间的切换。下面展示相应的界面和程序


app1中界面切换按钮代码如下(示例):

app2;
delete(app);

app2中界面切换按钮代码如下(示例):

app1;
delete(app);

三、数据导入及保存

        数据的导入导出要根据数据的类型进行具体的编写,但是基本的框架是相同的。利用两个按钮的回调函数进行设计,数据的导入之前要进行文件的选择;数据的保存要选择保存的位置,下面根据不同的数据类型对按钮的回调函数进行编写。

        其对应页面布局如下:

(一)数据导入

        数据导入可以分为很多数据类型,可以从(.csv)文件、(.mat)文件或者(.xlsx)文件中进行数据的读取,所运用的读取函数可能不同,但是方法类似,示例中展示了(.csv)文件的导入程序。

        以下程序为(.csv)文件的数据导入程序:

%数据导入
[filename,pathname]=uigetfile('*.csv');
name = strcat(pathname,filename);
variable = csvread(name);

(二)数据保存

         数据保存也可以分为很多数据类型,可以保存(.csv)文件、(.mat)文件或者(.xlsx)文件格式的数据,所运用的保存函数可能不同,但是方法类似,示例中展示了(.csv)文件、(.mat)文件以及(.xlsx)文件格式的保存程序。

        以下程序为(.xlsx)文件的数据保存程序:

[result_filename,pathname]=uiputfile('输出表.xlsx','文件保存为');

% 将结果写入 Excel 文件
result_sheet = 'Sheet1';
filename1 = strcat(pathname,result_filename);
                   
xlswrite(result_filename_1, {'h1', 'h2', 'h3', 'h4'}, result_sheet, 'A1');
result_data = [1:length(G); G; 2*G; 3*G];
xlswrite(filename1, result_data', result_sheet, 'A2');

        以下程序为(.mat)文件的数据保存程序:

[filename,pathname]=uiputfile('data.mat','数据保存为');

% 获取私有属性数据                
data = app.simOut.platform;

% 保存数据为MAT文件
save(fullfile(pathname,filename), 'data');

% 显示保存成功信息
uialert(app.UIFigure, '数据已保存', '保存成功');

         以下程序为(.csv)文件的数据保存程序:

% 将结果写入 Excel 文件
[filename,pathname]=uiputfile('platform.csv');
name = strcat(pathname,filename);
dataoutput = [1 1 1 1 1]; 
dlmwrite(name, dataoutput,'precision','%.5f');

总结

        以上就是今天要讲的内容,本文仅仅简单介绍了Appdesigner两种功能的设计方法,一个是界面的切换功能,另一个是数据的导入和保存功能。后续会逐步介绍更多的软件功能设计技巧并上传更多的资源。

  • 20
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MATLABApp Designer实现数据SVD奇异值分解并绘图,可以按照以下步骤进行: 1. 创建一个App Designer应用程序,并在界面上添加一个导入数据的按钮和一个绘图区域。 2. 在按钮的回调函数中,使用uigetfile函数让用户选择需要导入数据文件,并将数据读入到MATLAB中。 3. 对导入数据进行SVD分解。可以使用MATLAB内置的svd函数进行计算。 4. 将SVD分解得到的矩阵U、S、V转换为绘图所需的数据格式。 5. 在绘图区域中绘制奇异值的图像。可以使用MATLAB内置的plot函数进行绘制。 6. 在界面上添加一个显示SVD分解结果的按钮,并在其回调函数中实现绘制矩阵U、S、V的功能。可以使用MATLAB内置的imagesc函数进行绘制。 下面是一个简单的示例代码: ```matlab % --- Executes on button press in importButton. function importButtonPushed(app, event) % Let user select data file [filename, pathname] = uigetfile({'*.csv'}, 'Select a data file'); if isequal(filename,0) || isequal(pathname,0) % User clicked Cancel return; else % Read data from file data = dlmread(fullfile(pathname, filename)); % Perform SVD decomposition [U, S, V] = svd(data); % Plot singular values plot(app.UIAxes, diag(S)); % Save U, S, V matrices to app properties app.U = U; app.S = S; app.V = V; end end % --- Executes on button press in showSVDButton. function showSVDButtonPushed(app, event) % Plot U matrix imagesc(app.UIAxes, app.U); colormap(app.UIAxes, gray); % Plot S matrix plot(app.UIAxes2, diag(app.S)); % Plot V matrix imagesc(app.UIAxes3, app.V); colormap(app.UIAxes3, gray); end ``` 上述代码中,`importButtonPushed`函数实现导入数据并绘制奇异值图像的功能,`showSVDButtonPushed`函数实现了绘制矩阵U、S、V的功能。需要注意的是,`app.UIAxes`、`app.UIAxes2`、`app.UIAxes3`分别表示界面上的个绘图区域。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值