基于MATLAB GUI的数据格式标准化软件设计

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:weedppp
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:根据应用需求,基于MATLAB GUI设计了数据格式标准化软件。首先对基于MATLAB GUI的软件设计流程进行了概述,之后对MATLAB GUI 数据传递的关键技术方法进行了介绍,结合对设计软件的主要功能的说明,分析了MATLAB GUI设计的优缺点。
  关键词:MATLAB;GUI;数据格式;软件设计
  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)01-0063-03
  Data Format Standardization Software Design Based on MATLAB GUI
  LIN Xiu-na1, QU Bao-an1, CHEN Chuan-hua2, WANG Qiang1, JIA Li-guo1, XING Wei-wei1
  (1.Taian Fiducial Seismic Station of Earthquake Administration of Shandong Province,Taian 271000, China; 2.Jiaxiang Seismic Station of Earthquake Administration of Shandong Province,Jining 272400, China)
  Abstract: According to application demand, data format standardization software was designed based on MATLAB GUI. Firstly, software design flow based on MATLAB GUI is summarized. Then key technology and method about MATLAB GUI data transmission is introduced. Combining with illustration about the main function of the software, advantages and disadvantages of MATLAB GUI design is analyzed.
  Key words: MATLAB; GUI; data format; software design
  MATLAB以其強大的数据处理能力在矩阵运算、数值分析、图形处理等方面有着广泛的应用。自第4版推出句柄图形,尤其是MATLAB 6.0版图形用户界面(GUI)设计功能有了很大提高之后,将图形化窗口界面与数据处理模块互相结合的交互方式愈发普及。由此带来的友好界面化的数据处理使MATLAB的受益群体由熟悉MATLAB各种函数的专业人员向不了解MATLAB的人员扩展,在拓展MATLAB应用群体的同时为各个领域的数据处理带来了极大的便利。所谓图形用户界面,是指包含了各种图形控制对象,如图形窗口、菜单、对话框以及文本框等用户界面,也称为控件。利用这些用户界面,用户可以和计算机之间进行信息交流,并通过编写控件的回调函数(Callback),完成特定的功能。该文结合实例,对基于MATLAB GUI的软件设计进行了综合介绍。
  1 设计流程
  基于MATLAB GUI的软件设计可以概括为三步走:1) 软件界面设计;2) 模块功能开发;3) 软件封装。
  MATLAB GUI提供了GUIDE开发环境,可以方便的进行界面的设计和开发。GUIDE能够把前台和后台分开编辑,前台以MATLAB图形的方式运行,用于软件界面的设计,同时对界面各个功能模块的属性进行配置。用户只需要设置各个对象相应的属性,系统自动生成与之对应的界面,大大减少了开发的难度。后台以M文件的形式存储,可用于开发各个模块功能,包括各个功能模块完成的操作,功能模块之间数据的传递等等。前台的图形开发界面和后台的M文件是相互关联的,前台每添加一个元件,后台就会产生相应的函数。MATLAB GUI的数据传递是整个设计的难点,也是关键部分,该文将对此做详细的说明。完成界面设计和模块功能开发之后,需要将设计的软件进行封装,将软件转换为可执行文件,与MATLAB的运行环境MCRInstaller.exe一起打包,从而实现程序的移植和推广应用。
  2 数据传递
  MATLAB GUI的数据传递按照传递类型分为GUI之间的数据传递和GUI内部各个控件之间的数据传递,GUI间和GUI内的数据传递方式分为六种。
  1) global定义全局变量。
  此方式适用于GUI内以及GUI间。此方式应用简单,不需要其他的参数传递命令。但是,在任控件应用全局变量之前要先声明全局变量,即global‘变量名称’,而且若某一函数内部不慎修改了全局变量,则会造成变量混乱。
  2) 应用setappdata\getappdata函数。
  此方式适用于GUI内以及GUI间。可以实现多个变量的存取,应用相对global繁琐,但是适用范围广,且没有应用缺陷。首先将变量名称和标量值用setappdata传递给GUI或控件,使用时再用getappdata从GUI或控件中调出。
  3) 应用save和load函数
  此方式适用于GUI内以及GUI间。此方式是将变量的值先存到磁盘,用时从磁盘载入数据。当然,这种方式涉及到磁盘读写,速度相对较慢。
  4) 应用UserData。
  此方式仅适用于GUI内。每个控件均具有UserData属性,将数据存储到该控件中,使用时用get函数从UserData直接获取。此方式应用简单 ,但是每个对象仅能存取一个变量值,因此当同一对象存储两次变量时 ,先前的变量值就会被覆盖掉,因此都用UserData存储简单与单一的数据。   5) handles和GUIdata函数
  此方式仅适用于GUI内。使用handles.变量名在handles中添加该变量,之后用GUIdata保存改变量。此方式应用繁琐,而且新添加变量后可能就会覆盖已添加变量。
  6) varargin和varargout函数。
  此方式仅适用与GUI间传递数据,且只适合与主子结构,即从主GUI调用子GUI,之后关闭子GUI,而不适合并列结构或递进结构。
  根据不同的数据传递方式,基于所设计软件的功能需求,主要应用了可以进行多个变量传递而且相对安全稳定的setappdata\getappdata函数,同时辅以UserDate方式,实现了整个数据格式标准化软件的数据传递功能。
  3 应用分析
  根据应用需求,设计了泰安基准地震台地磁历史数据标准化软件,用于数据格式的统一转换和基础的数据处理。根据MATLAB GUI软件设计开发流程,软件的界面见图1所示,根据国际数据交换格式标准,数据相关信息均为英文。
  软件界面主要分为五个功能区,分别为12个头记录的录入和选择,注释记录的录入,选择打开数据文件,数据处理以及生成标准化数据文件。其中头记录的Reported和选择数据文件之间有主动数据的传递,即Reported录入报告分量之后,分别自动传达到打开数据文件的不同的显示框,以便Select File选择与该分量对应的数據文件,见图1中所示。当点击Select File选择相应分量的数据文件之后,即显示数据文件的路径信息和文件名,见图2中所示,即Select File与显示框也有主动的数据关联。Digital Sampling与数据处理部分的Lowpass Filter存在数据被动传递,即点击Lowpass Filter后,从Digital Sampling获取数据的采样率,以进行滤波。同样,Plot Data、Select File、Lowpass Filter和Plot Filtered Data之间存在多个数据变量的传递。Lowpass Filter的Callback程序如下:
  function lowpassfilter2_Callback(hObject, eventdata, handles)
  value=get(handles.digitalsampling1,’Value’);%获取digitalsampling的值
  switch value %根据value获取string的值,即得到采样率
  case 1
  samplerate=1;
  case 2
  samplerate=1/60;
  case 3
  samplerate=1/3600;
  end
  ynumber=getappdata(handles.selectfile2,’number1’); %获取观测数据
  if length(ynumber)<1
  errordlg(’请先读入数据文件’,’warn’);
  else
  ynumberf=myfilterlp(15,samplerate/10,ynumber,samplerate);%低通滤波
  setappdata(handles.lowpassfilter2,’ynumberf’,ynumberf); %保存滤波
  %后数据
  end
  先获取Digital Sampling 的值,根据取值得到对应的String的值,即为采样率,从Select File调取数据,进行滤波,之后保存滤波后的数据以备其他控件调用。
  图2所示为软件的Select File功能、滤波前后对比绘图、软件控件操作的验证及警告功能等。
  4 结论和讨论
  综上所述,基于应用需求,设计了基于MATLAB GUI的数据格式标准化软件,经过界面设计,数据传递函数调用编程等,完成了控件之间的操作和数据传递,实现了软件的各个功能。
  基于MATLAB GUI软件设计,将MATLAB的强大的数据处理能力与友好的图形用户界面相结合,实现了MATLAB功能的黑箱操作,极大地拓展了MATLAB数据处理能力的受众。而且MATLAB提供的GUIDE开发环境简便易用,降低了界面设计的复杂度,提高了设计效率。但是MATLAB GUI基于控件的界面,在进行界面设计时需要进行综合考虑,花费较多精力,不适用于大型程序的开发。对于每个控件的属性进行设定时容易引起错误,从而导致已经设计好的界面无法用GUIDE打开,只能重新设计。而且,MATLAB程序的封装性相对较差。但是在进行数据和图像处理时,MATLAB GUI无疑具有较大优势。
  参考文献:
  [1] 陈怀琛.MATLAB及其在理工课程中的应用指南[M].西安:西安电子科技大学出版社,2000.
  [2] 纪元法,孙希延,施浒立.MATLAB的两种图形用户界面参数输入方法[J].电脑知识与技术,2008,13:728-731.
  [3] 焦勇,周喻虹.基于MATLAB的快速图形化数据处理软件设计[J].电子科技,2005(7):40-42.
  [4] 余承依.基于Matlab数值计算的GUI设计[J].漳州师范学院学报:自然科学版,2004,17(4):38-40.
  [5] 张志涌.精通MATLAB 6.5版[M].北京:北京航空航天大学出版社,2003.
其他文献
摘要:信息技术不断发展,推动了信息化成果转化为平安建设能力。学院计算机专业的教师主动适应形势新变化,深入理解开展戒毒信息化建设的必要性。坚持以法治为引领,切实体现校所合作背景下学院计算机类专业技术教师服务司法行政行业的重要性。不断发挥他们在服务戒毒信息化建设中一立足行业,切实提供智力支撑;二服务行业,助推信息化工作进程;三提升行业,共育高素质复合型法治工作队伍的积极作用。  关键词:信息化建设;戒
摘要:在Web技术迅速发展变化的今天,传统的Web程序设计课程教学已无法满足时代进步和人才培养的需要。该文结合“以学生为主体,以教师为主导”的教育思想,提出深化项目驱动教学,构建项目驱动教学创新模式,充分调动学生主观能动性和激发学生学习兴趣,实现拥有创新意识和具备创新能力的人才培养。  关键词:Web程序设计;项目驱动;创新  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(
摘要:作为本科教育的素质教育中重要一环-实践环节,我校电工电子设计是理工科必修的实训课程,在这门课中,无一例外的要使用可调稳压电源,以及晶振的测试器。为了满足我校电工电子实训课程的迫切需要,研制了带测试晶振的无级可调直流稳压电源。本文主要介绍带测试晶振的无级可调直流稳压电源的主要组成部分、工作原理及应用。  关键词:无级;可调直流电压源;晶振测试  中图分类号:TP391 文献标识码:A 文章编号
摘要:《计算机科学与技术》专业课程会基于经济、社会、科技的发展而持续地更新,为了培养高素质的实用型人才,即增强学生的职业胜任能力,高校务必调整专业学习和知识结构。为此,该文阐述了《计算机科学与技术》专业教学中如何调整专业学习和知识结构,从而增强学生职业胜任能力的有效对策。  关键词:计算机科学;技术;知识结构;职业胜任;能力  中图分类号:G642 文献标识码:A 文章编号:1009-3044(2
摘要:移动互联行业已进入高速发展期,致使开发人才需求急剧增加。该文以常州信息职业技术学院移动互联应用技术专业为例,从移动互联人才的培养模式、课程体系建设和实训基地建设等方面阐述了在工学结合模式下该专业在人才培养方面的探索与实践。  关键词:工学结合;移动互联应用技术专业;人才培养;课程体系  中图分类号:G424 文献标识码:A 文章编号:1009-3044(2015)10-0106-02  1
摘要:线性代数是理工专业本科学生的基础数学课程,相比其他数学课程,线性代数学习内容抽象、课时少。如何将抽象的理论知识更直观自然地教授给学生是线性代数教学过程中研究的内容,特别针对二本学院学生。该文根据软件学院办学特点,在讨论数字图像原理的基础上,对线性代数教学进行了探讨,并在此基础上给出提高教学效果的一系列建议。  关键词:软件学院; 图像处理;线性代数  中图分类号:G64 文献标识码:A 文章
摘要:随着Internet的出现,网络、计算机、通讯等技术的飞速发展,“数字”一词则进入了各个领域,社会各界通过网络、计算机、移动通讯等方式来传递信息,改变了人们获取信息的方式,促使文献资源的建设、管理、服务、获取信息方式等由纸质型向数字网络化方向转型,数字图书馆成为了未来图书馆的主要发展方向,在文献资源建设中,很多数据库不断涌现。结合作者的实际工作经历,论文以“花卉资源的关联规则算法研究”项目为
摘要:初中生物对将来的生物学习起着地基的作用。教材是课程的依托,是教学和学习的重要参考资料。笔者通过扫描整理得到电子版维吾尔文初中生物四册教材的文本,使用统计软件统计出四册教材中的词汇和词频,经过手工统计得到其中的生物词汇和词频,从中选取高词频的生物词汇,参照国家教育部2011年发布的课程标准,通过专业词汇的词频分析了对初中生物教材知识点的符合程度,结合维吾尔文语言学的特点,针对维吾尔文初中生物的
摘要:大学开放的学习环境以及不逃课就不算上过大学这种错误的思想观念的影响,再加上很多大一新生刚从高中时代那种封闭的学习环境中解脱出来,自身的放松使得他们对课堂学习不重视,玩手机、逃课等现象严重。这使得大学课堂的学习氛围普遍不高,学习效率低下。那么如何调动高校学生课堂学习的积极性呢?该文从学生的角度出发,剖析了当前高校学生课堂学习积极性不高的原因,通过以单片机的学习为例,介绍了课堂理论学习与实验学习
摘要:本系统采用VB 6.0和Access 2000分别作为主要开发工具和数据库,主要实现了对学生的学籍,班级、所学课程、成绩和考勤信息的统一管理,减少了管理方面的工作量。使对学生信息的管理实现了自动化和规范化,并且在实现其功能的基础上,增加了用户的使用权限。系统按功能共分为五部分:学籍管理模块、班级管理模块、课程管理模块、成绩管理模块和考勤管理模块。  关键词:VB 6.0;模块;学生管理系统