Matlab-基于GUI的误差分析与数据处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011-2012学年的计算机辅助分析的课程设计。笔者花了好几个星期的课余时间,将其初略的完成了。这段时间里可以说是现学现用,因为笔者所学的Matlab课程中没有设计到GUI的相关内容。正是如此,整个设计中难免会有差错,或者说是理解不深的地方。还是希望那些要借鉴此设计的朋友甄选辨别一下,再做决定。整个设计尚不完善,还在进一步的修改中。
今笔者将其上传。本来有个源文档,很是占页数。因为里面程序较多。笔者想了一下,大无上传的必要。这些程序就算复制下来,也不能单独运行,传上来反而增加大家阅读的负担。
所以将打印稿传至百度文库,供大家参考。
课程名称:计算机辅助分析
设计题目:基于GUI的误差分析院系:电气工程系
专业:电子信息工程
年级:2010 级
姓名:XXX
学号:XXXX
指导教师:XXXX
西南交通大学峨眉校区
2011年12月16日
第一章摘要 (3)
第二章想法的提出 (5)
第三章相关设想 (6)
第四章需要解决的问题: (7)
1 程序功能方面 (7)
2 数据结构方面: (7)
3 控件方面: (7)
4 函数的使用: (8)
第五章过程(思路和方法) (9)
1 GUI学习 (9)
1-I GUI架构(向导) (9)
1-II 基本控件: (9)
1-III 控件属性设置: (9)
1-IV 控件回调函数(Callback Routine) (10)
2 数据结构: (10)
2-I 细胞矩阵 (10)
2-II 结构体变量(见课本82页) (10)
2-III 局部变量和全局变量 (10)
2-IV GUI中的类、对象: (11)
3 选择数据的构造方式及选择编程方法 (11)
3-I 第一种想法:依据数据层次建立数据结构,当时写了一个模型的样本
文件如下: (11)
3-II 第二种想法:依据表格中的数据位置进行构造 (14)
3-III 比较一二两种算法: (15)
4 窗口界面的建立和界面的完善及程序的编写和调试 (15)
5 程序的编写和调试: (16)
5-I 程序的变量命名: (16)
5-II 程序的数据架构: (17)
5-III 函数: (17)
5-IV 编程的难点: (21)
5-V 功能介绍和使用方法: (22)
6 程序对比 (30)
第六章附录 (33)
1 用到的课本知识: (33)
2 函数说明: (33)
3 参考文献: (33)
第一章摘要
关于GUI(Graphical User Interface)
图形用户界面,是指采用图形方式显示的计算机操作用户界面。与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。
Matlab整个系统中集成了大量的GUI函数,这些函数与Matlab本身兼容良好,调用极为方便。同时,用户亦可通过编程创建新的GUI函数,这样大大拓展了Matlab的GUI的创造力。
Matlab的工程师们为了用户编程方便提供了一个简便易用的GUI工具,GUIDE(向导)。GUIDE本身就是一个GUI程序,用于帮助用户直观快速的生成控件的基本代码。每当用户向GUIDE界面增添控件后,点击运行,便可自动生成与控件相关的程序,减少不必要的书写。这样使每个初学GUI的朋友快速上手!
本次课程设计,笔者是依靠GUIDE来完成窗口函数的建立的。
程序功能简介
此次编写的程序功能简单,主要针对一维数据,对它们求和、求均值、求A类不确定度、B类不确定度、直接合成不确定度以及间接测量合成不确定度。
用户输入数据时,会根据这些数据绘制原始数据的直角坐标连线图,方便查看数据的变化趋势。
用户可以从Excel表格中导入数据,进行相应的计算;也可以将计算好的数据以表格的形式输出到Excel文件中。计算过程中会产生各种量的更替,这些更替可以保存到*.datM文件中,在下次进行计算时可直接导入。如果不需要数据可以先将此状态文件导入,再输入数据或者导入数据,这样先前*.datM中的数据将被覆盖,但是相应的设置未变。
处理关系复杂的数据时可以将计算分成多个部分,依次处理。
数据输入或计算好后可以进行简单的绘图。
程序特点(架构):
现阶段所完成的程序是一个底层,后续的设计将会在这个底层基础上建立模型及库文
件,这些模型或库可以描述各种各样数据结构的表格。这样只需花少量的人力和时间,在文本文档中用易懂的语言描述表格的特征,导入软件就可以实现对这类表格的数据处理。
关键词:GUI 误差分析Excel表格状态导出状态载入绘图模型库
第二章想法的提出
笔者向来热爱物理,更喜欢动手实验。来到大学之前,一直认为大学将给每个学子以一个更为开放和自由的环境。可是让人失望的是依旧有许许多多的无奈。
而这种种无可奈何中,又以实验最为让人无奈。我本无心于对制度指指点点,又提不出任何有建设性的方案。但对于实验,我确实极为不满,不得不抱怨一下。
实验目的是在于发掘事物间的规律。实验可以发现一些问题,透过这些问题,我们或可发现规律,或可检验理论,或可掌握知识,或可培养兴趣。而笔者现在所做过的那么多的大学实验(电路,物理,模电),没有哪个是完完全全的投入精神和时间去完成的!倒是在平日的时间里,笔者自己用有限的材料和器材完成的探索和实验让笔者兴趣百倍,记忆深刻。平时的实验冲忙而又浮躁,还有各种制约。要那样要这样,不要那样不要这样,必须写实验报告,必须计算结果,必须是这个结果,不准迟到,不准乱动仪器……
实验早就成为了一种负担,笔者大部分的可用课余时间都被满纸的实验报告占据,有时还为实验数据(结果)处理焦头烂额。这种情况不仅仅是出现在笔者一个人身上。我们大家都不得不去做那些得花一个小时抄报告还弄不清楚上边是什意思的实验。用身边朋友调侃的话来说,不是每个人都有这样历经高考磨难,交了钱来做这种实验的机会,我们该庆幸啊!
在这种情况下,笔者果断地将Matlab的大作业定为了——误差分析与数据处理。主要还是因为这个课程设计若完成,在笔者一直没有鼓起勇气逃离制度的情况下,还是非常有用的,至少处理数字型的实验可以派上用场。二来,能在误差分析方面更深入了解一些,这些知识在今后的工程工作中大有用处。
这个课题大的方面就已经确定好了。细想一下,只做误差分析和数据处理好像内容过于单调。加之,要是做一个完完全全依赖于Matlab的程序,这样也不太好用。如果将这个程序放在一个独立的界面上运行的话,就可以称之为一个小型的简易数据处理软件,这样既便于使用,也更加独立,通用性更强。于是笔者将题目定为了“基于GUI的误差分析和数据处理”。除此之外,还有个原因,笔者确实对面向对象的编程饶有兴趣,希望能够找到机会学习,而现在机会来了!
课程设计由此展开,到后来这个程序的复杂程度渐渐增大,时间又紧迫,一方面课程设计需要在第十六周之前完成;另一方面,期末已至,这学期笔者花在课外的时间较多,预习兼复习的任务艰巨。所以在只勉强完成了“误差分析”的功能后,没有更多的时间去完成更多的功能。若以后能腾出时间,必要好好将程序完善。