admin 管理员组文章数量: 1184232
目录
1、前期准备
1.1环境配置
1.2App获取
2、编写APP
2.1常用组件功能介绍
2.1.1 按键
2.1.2 下拉框
2.1.3 文本区域
2.1.4 HTML控件
2.1.5 选项卡
2.1.6 编辑字段
2.1.7 表格
2.2App函数的编写
2.2.1回调函数
2.2.2初始化函数
2.3对App的理解
3、打包APP
3.1操作步骤
3.2生成exe踩的坑
4、最后
1、前期准备
要编写APP之前首先要配置环境,环境配置好了才能进行后续操作,如果环境没有配置那么必然不可能成功运行。
1.1环境配置
打开matlab之后,在命令行输入mcr。
由于环境没有配置,所以会报错的,找不到Runtime。
根据命令提示,在命令行输入compiler.runtime.download
由于matlab自身下载非常慢所以,要去另一个地方下载(网页),那么此时的操作为在命令行窗口按下CTRL+C,没看错就是这个组合键,这不是复制而是matlab中的命令停止,输入之后会得到以下输出:
将上图中的网站复制并粘贴到网页上即可下载,每个matlab版本对应不同的Runtime版本,这个方法是最简单的下载方法,不必去matlab官网上寻找。
下载完毕之后在matlab中配置:
将下载的压缩包选中,不要压缩,不要压缩,不要压缩。
1.2App获取
获取的这个app为了后续打包服务。
2、编写APP
App的编写相对而言比较简单,但是APP的编写难度会根据想要实现功能的复杂性而上升,主要是调试难度大。
点击matlab中的新建,建立APP。
2.1常用组件功能介绍
常用的组件为:按键、下拉框、文本区域。
2.1.1 按键
按键,功能很简单,就是点一下执行相关任务,这个任务就是回调函数。
右键按键即可添加回调函数。
在回调函数中可以任意编写代码。
2.1.2 下拉框
下拉框也比较常见
唯一需要注意的是下拉框值的形式-字符型。
2.1.3 文本区域
这个文本既可以输入又可以输出,非常有利于人机交互,但是在使用他的时候还需要注意一下,首先这个文本区域本质上是个元胞,而且是个字符元胞,也就是给他赋值的时候需要用字符的形式。
app.TextArea.Value= num2str(plus(value,2));
app.TextArea.Value{1} = '1 2 3 4';
2.1.4 HTML控件
这个控件的使用可以极大的提升app的上限,使用了这个组件等于将网页搬到了app上,你只需要编写HTML+CCS+JS就可以实现相应的功能,控件使用方法:
1.编写网页
2.在app中引用
3.运行
2.1.5 选项卡
此组件可以通过选择来实现切换页面,而且页面切换不影响其他页面的运行,本质上是同一个app,另一种切换页面就是使用两个app进行交互,两种方法都可以使用,但是两个app有两个明显的缺点1、程序代码大2、web中不支持两个app之间相互调用。BTW,使用选项卡不必放在主app中,可以灵活使用position进行位置定位。
2.1.6 编辑字段
编辑字段有两种一个是数据,另一个是文本,而这两个组件本质上就是数据与文本,直接调用app.text.value即可。
2.1.7 表格
表格知道如何将表格填上自己想要填写的数据,表格中有表头与表格,两个可以分开填写,表头填写使用app.UITable.ColumnName直接赋值即可,表格填写就可以使用app.UITable.Data赋值。表格还有一些属性可以使用,比如说排序,编写表头,可以在右下角的“表”中设置。
2.2App函数的编写
2.2.1回调函数
一开始编写App的时候我以为,App只是个界面,用这个界面调用.m文件,实际上App自己就是个matlab,你可以在app里面进行编程。
只需要自己添加函数就可以了,不过所有函数的第一个输入变量必须是”app“,否则报错。
2.2.2初始化函数
初始化函数在app中也是很重要的,但是初始化函数需要注意的就一点,如何添加:右键即可。
2.3对App的理解
App是个界面设计,其本身就可以进行代码编写与.m文件无异,调试也与.m一样,但是他的变量不会在matlab工作区显示,在App中最好不要用clear,因为这会将app本身给清除掉。每个组件都有其存在的意义,赋予其意义的就是回调函数,如果不是自己编写的函数,函数是不会返回值的。调试App时还是用断点调试,此时变量就可以在workspace显示了。
编写app的目的就是能快速的执行代码,或者将代码工具化。
3、打包APP
3.1操作步骤
从APP中打开Application Compiler。
选择 编写的App,(右边)如果exe是给客户的或电脑没有matlab的就选downloaded from web,如果电脑有环境就选included in package。
其他的随便填一下,关键在于log的输出,log不输出后期调试就无法下手。
最后生成package。
生成的文件有三个,第一个是给其他人的,点开之后开始下载,大约3G,第二个是自己用的exe,管理员方式打开即可使用,第三个是测试用,个人任务和第二个文件没有差别。
3.2生成exe踩的坑
在matlab中完成了app的编写,app运行可以完美输出结果,然后很开心的打包输出exe了,点开exe之后,程序运行,但是没有完全运行,就是稍稍动了一下,这个时候就体现出log的重要性了,我在没有log的情况下瞎猜原因,导致浪费了很多时间,最后发现是xlsread函数在app中不支持( 应该是这个原因),将其换成了readtable之后程序顺利运行,顺利运行了一半,之后发现readtable中的读取方式和xlsread有差距,所以又花了很多时间更改了读取和提取数据方式,最后得到了好的结果。
-2024/3/1
版权声明:本文标题:Matlab APP编写并打包 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1765751221a3411772.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论