前言:
博主为24年入学的研一新生,刚入学接手了一个纵向子课题,本学期除了一片软著以外,再无成果产出,本文章的主要意义为记录博主整个软著撰写的经历以及软件所涉及的一些代码的解释。博主知识浅薄、能力低下,本文可能并没有什么实际的参考意义,可权当作零基础写软著的快速入门参考。
由于项目要求需要进行软著撰写,便在网上查询了一番,其实用什么软件进行软件的撰写都是可行的,例如Visual Studio、Pycharm、Matlab等。由于没有使用过其余的软件进行软件撰写,无法评判各类软件的优缺点,但从工作过程中来看,Matlab对于软著编写是非常友好且简单的。
PS:博主所使用的Matlab版本为R2020a,安装方法不再赘述,B站有很多教程。
App界面设计:
打开Matalb软件的界面如下图标注位置可以看到APP标题栏选项,点击进入。
进入后点击设计App。
Matlab内的App Designer工具界面如下图所示。
可以看到里面有很多的基于Matalb软件所做的示例App,可以在编写软件时进行参考。
接下来鼠标点击新建空白App
打开后的界面如下
可以看到左侧工具栏中有很多选项,其中包含很多用于设计App的组件,这也是题主之所以说用Maltab撰写软著比较简单且友好的原因,组件库里有的组件可以满足大部分情况的软著App设计,且所需要的操作就仅仅是用鼠标拖动而已。并且可以通过拖动直接控制组件的大小、位置,如果需要拖动对齐某些组件,还会发现有类似Powerpoint里用于调整位置的辅助线。
选择了一些组件作为例子,将组件拖动到画布后点击最上方标题栏下的运行,可以运行目前设计的App页面
基于App设计方面的美观性考虑,可以适当改变各组件的大小、位置,文章不过多赘述,只要用手拖动组件即可。
设计完整个软件界面的布局后就可以按下图进行操作,这里仅举例部分,其余的组件也是相同道理,总体上手难度低,对新手是比较友好的。
更友好的是,App Designer已经帮我们写出了这些对应组件的代码,可以省去大量的时间。点击画布页面左上角的代码视图可以进入查看。
至此对于软件界面的设计差不多告一段落,为了实现软件所需要的功能,还是需要一定的代码基础进行编写的。
组件功能实现:
这也是此文的目的, 对所学习的代码编写进行总结,以便后续复习。下文仅对博主所撰写的软件中的数据导入并显示路径的功能举例说明代码编写的部分。
将按钮组件拖入画布后,点击并按上述步骤在检查器中改变按钮显示的文字,直接双击按钮中的文字也可以直接更改。
然后点击检查器旁边的回调,对导入实验数据按钮添加回调函数。 点击添加后便会自动进入代码视图,可以通过编写代码实现按钮的功能。
所要实现的功能比较简单,实现的思路自然也是比较好想的。需求是读取一个EXcel表格并将数据存储在一个容器中以便后续通过公式结算结果或者读取表格内容进行绘图。其次,需要将读取数据的路径显示在导入路径文本框之中。
%通过uigetfile函数打开文件选择对话框并返回文件名和文件路径到不同变量中。
[fileName, filePath] = uigetfile({'*.xlsx', '选择实验数据');
%判断是否选择了文件
if fileName ~= 0
%组合文件的完整路径,以便后续显示。
fullPath = fullfile(filePath, fileName);
%尝试将数据读取并存储到 app.importedData 中
try
app.importedData = readtable(fullPath);
% 更新路径显示文本框
app.EditField_5.Value = fullPath;
end
end
敲完这段代码后仔细想了想,在实际操作时,应该还有很多的情况,比如,没有选择文件、数据导入失败等等。于是在其中多加了一部分代码,丰富了一下按钮所能呈现的功能。
整体的代码如下。
[fileName, filePath] = uigetfile('*.xlsx', '选择实验数据');
if fileName ~= 0
fullPath = fullfile(filePath, fileName);
try
app.importedData = readtable(fullPath);
app.EditField_5.Value = fullPath;
% 弹出成功提示框,带有成功图标
uialert(app.V10UIFigure, '数据导入成功!点击启动开始分析', '导入成功', 'Icon', 'success');
catch ME
% 如果导入失败,弹出错误提示框,带有错误图标,显示在主界面上
uialert(app.V10UIFigure, ['数据导入失败!错误信息: ', ME.message], '导入错误', 'Icon', 'error');
end
else
% 用户取消了文件选择
uialert(app.V10UIFigure, '未选择任何文件!', '警告', 'Icon', 'warning');
end
所实现的功能如下图所示。
未选择文件时弹出警告对话框:
导入成功后弹出运行提示对话框:
在文件选择时选择非xlsx格式的文件,弹出导入错误对话框并将捕获的错误对象的错误信息显示在对话框中:
导入数据成功后,在导入路径的文本框中显示所导入的文件的文件名与文件路径:
其余的诸如画图功能、根据下拉框选择对应改变其余组件的值等功能也是按照以上的技术路线实现的,所分享的感觉也只是能应付这种比较简单的撰写任务,毕竟博主才疏学浅,也没有特别多的时间对其余功能进行逐一分析再撰写稿子。
因为博主手上的项目属于组里的新方向,平常都比较忙碌,成果虽然是目前没有什么值得一提的,但每天确实都挺累的。后续可能再记录一些在C语言、Altium Designer、ANSYS以及Matalb软件学习中的一些心得和一些习题的解析吧,也不算是教学,只是单纯的对将自己的学习经历总结记录,或许有小伙伴可以从中发现我的错误,还望不吝赐教。
软著撰写的历程差不多就结束了,其余的就是要写软件说明书以及一份软件源代码,这个相关的也可以去B站搜索相关的视频,说的都很透彻。