• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于MATLAB GUI的數(shù)據(jù)格式標(biāo)準(zhǔn)化軟件設(shè)計(jì)

      2015-03-16 09:22:51林秀娜等
      電腦知識(shí)與技術(shù) 2015年1期
      關(guān)鍵詞:軟件設(shè)計(jì)數(shù)據(jù)格式

      林秀娜等

      摘要:根據(jù)應(yīng)用需求,基于MATLAB GUI設(shè)計(jì)了數(shù)據(jù)格式標(biāo)準(zhǔn)化軟件。首先對(duì)基于MATLAB GUI的軟件設(shè)計(jì)流程進(jìn)行了概述,之后對(duì)MATLAB GUI 數(shù)據(jù)傳遞的關(guān)鍵技術(shù)方法進(jìn)行了介紹,結(jié)合對(duì)設(shè)計(jì)軟件的主要功能的說(shuō)明,分析了MATLAB GUI設(shè)計(jì)的優(yōu)缺點(diǎn)。

      關(guān)鍵詞:MATLAB;GUI;數(shù)據(jù)格式;軟件設(shè)計(jì)

      中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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以其強(qiáng)大的數(shù)據(jù)處理能力在矩陣運(yùn)算、數(shù)值分析、圖形處理等方面有著廣泛的應(yīng)用。自第4版推出句柄圖形,尤其是MATLAB 6.0版圖形用戶(hù)界面(GUI)設(shè)計(jì)功能有了很大提高之后,將圖形化窗口界面與數(shù)據(jù)處理模塊互相結(jié)合的交互方式愈發(fā)普及。由此帶來(lái)的友好界面化的數(shù)據(jù)處理使MATLAB的受益群體由熟悉MATLAB各種函數(shù)的專(zhuān)業(yè)人員向不了解MATLAB的人員擴(kuò)展,在拓展MATLAB應(yīng)用群體的同時(shí)為各個(gè)領(lǐng)域的數(shù)據(jù)處理帶來(lái)了極大的便利。所謂圖形用戶(hù)界面,是指包含了各種圖形控制對(duì)象,如圖形窗口、菜單、對(duì)話(huà)框以及文本框等用戶(hù)界面,也稱(chēng)為控件。利用這些用戶(hù)界面,用戶(hù)可以和計(jì)算機(jī)之間進(jìn)行信息交流,并通過(guò)編寫(xiě)控件的回調(diào)函數(shù)(Callback),完成特定的功能。該文結(jié)合實(shí)例,對(duì)基于MATLAB GUI的軟件設(shè)計(jì)進(jìn)行了綜合介紹。

      1 設(shè)計(jì)流程

      基于MATLAB GUI的軟件設(shè)計(jì)可以概括為三步走:1) 軟件界面設(shè)計(jì);2) 模塊功能開(kāi)發(fā);3) 軟件封裝。

      MATLAB GUI提供了GUIDE開(kāi)發(fā)環(huán)境,可以方便的進(jìn)行界面的設(shè)計(jì)和開(kāi)發(fā)。GUIDE能夠把前臺(tái)和后臺(tái)分開(kāi)編輯,前臺(tái)以MATLAB圖形的方式運(yùn)行,用于軟件界面的設(shè)計(jì),同時(shí)對(duì)界面各個(gè)功能模塊的屬性進(jìn)行配置。用戶(hù)只需要設(shè)置各個(gè)對(duì)象相應(yīng)的屬性,系統(tǒng)自動(dòng)生成與之對(duì)應(yīng)的界面,大大減少了開(kāi)發(fā)的難度。后臺(tái)以M文件的形式存儲(chǔ),可用于開(kāi)發(fā)各個(gè)模塊功能,包括各個(gè)功能模塊完成的操作,功能模塊之間數(shù)據(jù)的傳遞等等。前臺(tái)的圖形開(kāi)發(fā)界面和后臺(tái)的M文件是相互關(guān)聯(lián)的,前臺(tái)每添加一個(gè)元件,后臺(tái)就會(huì)產(chǎn)生相應(yīng)的函數(shù)。MATLAB GUI的數(shù)據(jù)傳遞是整個(gè)設(shè)計(jì)的難點(diǎn),也是關(guān)鍵部分,該文將對(duì)此做詳細(xì)的說(shuō)明。完成界面設(shè)計(jì)和模塊功能開(kāi)發(fā)之后,需要將設(shè)計(jì)的軟件進(jìn)行封裝,將軟件轉(zhuǎn)換為可執(zhí)行文件,與MATLAB的運(yùn)行環(huán)境MCRInstaller.exe一起打包,從而實(shí)現(xiàn)程序的移植和推廣應(yīng)用。

      2 數(shù)據(jù)傳遞

      MATLAB GUI的數(shù)據(jù)傳遞按照傳遞類(lèi)型分為GUI之間的數(shù)據(jù)傳遞和GUI內(nèi)部各個(gè)控件之間的數(shù)據(jù)傳遞,GUI間和GUI內(nèi)的數(shù)據(jù)傳遞方式分為六種。

      1) global定義全局變量。

      此方式適用于GUI內(nèi)以及GUI間。此方式應(yīng)用簡(jiǎn)單,不需要其他的參數(shù)傳遞命令。但是,在任控件應(yīng)用全局變量之前要先聲明全局變量,即global‘變量名稱(chēng),而且若某一函數(shù)內(nèi)部不慎修改了全局變量,則會(huì)造成變量混亂。

      2) 應(yīng)用setappdata\getappdata函數(shù)。

      此方式適用于GUI內(nèi)以及GUI間??梢詫?shí)現(xiàn)多個(gè)變量的存取,應(yīng)用相對(duì)global繁瑣,但是適用范圍廣,且沒(méi)有應(yīng)用缺陷。首先將變量名稱(chēng)和標(biāo)量值用setappdata傳遞給GUI或控件,使用時(shí)再用getappdata從GUI或控件中調(diào)出。

      3) 應(yīng)用save和load函數(shù)

      此方式適用于GUI內(nèi)以及GUI間。此方式是將變量的值先存到磁盤(pán),用時(shí)從磁盤(pán)載入數(shù)據(jù)。當(dāng)然,這種方式涉及到磁盤(pán)讀寫(xiě),速度相對(duì)較慢。

      4) 應(yīng)用UserData。

      此方式僅適用于GUI內(nèi)。每個(gè)控件均具有UserData屬性,將數(shù)據(jù)存儲(chǔ)到該控件中,使用時(shí)用get函數(shù)從UserData直接獲取。此方式應(yīng)用簡(jiǎn)單 ,但是每個(gè)對(duì)象僅能存取一個(gè)變量值,因此當(dāng)同一對(duì)象存儲(chǔ)兩次變量時(shí) ,先前的變量值就會(huì)被覆蓋掉,因此都用UserData存儲(chǔ)簡(jiǎn)單與單一的數(shù)據(jù)。

      5) handles和GUIdata函數(shù)

      此方式僅適用于GUI內(nèi)。使用handles.變量名在handles中添加該變量,之后用GUIdata保存改變量。此方式應(yīng)用繁瑣,而且新添加變量后可能就會(huì)覆蓋已添加變量。

      6) varargin和varargout函數(shù)。

      此方式僅適用與GUI間傳遞數(shù)據(jù),且只適合與主子結(jié)構(gòu),即從主GUI調(diào)用子GUI,之后關(guān)閉子GUI,而不適合并列結(jié)構(gòu)或遞進(jìn)結(jié)構(gòu)。

      根據(jù)不同的數(shù)據(jù)傳遞方式,基于所設(shè)計(jì)軟件的功能需求,主要應(yīng)用了可以進(jìn)行多個(gè)變量傳遞而且相對(duì)安全穩(wěn)定的setappdata\getappdata函數(shù),同時(shí)輔以UserDate方式,實(shí)現(xiàn)了整個(gè)數(shù)據(jù)格式標(biāo)準(zhǔn)化軟件的數(shù)據(jù)傳遞功能。

      3 應(yīng)用分析

      根據(jù)應(yīng)用需求,設(shè)計(jì)了泰安基準(zhǔn)地震臺(tái)地磁歷史數(shù)據(jù)標(biāo)準(zhǔn)化軟件,用于數(shù)據(jù)格式的統(tǒng)一轉(zhuǎn)換和基礎(chǔ)的數(shù)據(jù)處理。根據(jù)MATLAB GUI軟件設(shè)計(jì)開(kāi)發(fā)流程,軟件的界面見(jiàn)圖1所示,根據(jù)國(guó)際數(shù)據(jù)交換格式標(biāo)準(zhǔn),數(shù)據(jù)相關(guān)信息均為英文。

      軟件界面主要分為五個(gè)功能區(qū),分別為12個(gè)頭記錄的錄入和選擇,注釋記錄的錄入,選擇打開(kāi)數(shù)據(jù)文件,數(shù)據(jù)處理以及生成標(biāo)準(zhǔn)化數(shù)據(jù)文件。其中頭記錄的Reported和選擇數(shù)據(jù)文件之間有主動(dòng)數(shù)據(jù)的傳遞,即Reported錄入報(bào)告分量之后,分別自動(dòng)傳達(dá)到打開(kāi)數(shù)據(jù)文件的不同的顯示框,以便Select File選擇與該分量對(duì)應(yīng)的數(shù)據(jù)文件,見(jiàn)圖1中所示。當(dāng)點(diǎn)擊Select File選擇相應(yīng)分量的數(shù)據(jù)文件之后,即顯示數(shù)據(jù)文件的路徑信息和文件名,見(jiàn)圖2中所示,即Select File與顯示框也有主動(dòng)的數(shù)據(jù)關(guān)聯(lián)。Digital Sampling與數(shù)據(jù)處理部分的Lowpass Filter存在數(shù)據(jù)被動(dòng)傳遞,即點(diǎn)擊Lowpass Filter后,從Digital Sampling獲取數(shù)據(jù)的采樣率,以進(jìn)行濾波。同樣,Plot Data、Select File、Lowpass Filter和Plot Filtered Data之間存在多個(gè)數(shù)據(jù)變量的傳遞。Lowpass Filter的Callback程序如下:

      function lowpassfilter2_Callback(hObject, eventdata, handles)

      value=get(handles.digitalsampling1,'Value');%獲取digitalsampling的值

      switch value %根據(jù)value獲取string的值,即得到采樣率

      case 1

      samplerate=1;

      case 2

      samplerate=1/60;

      case 3

      samplerate=1/3600;

      end

      ynumber=getappdata(handles.selectfile2,'number1'); %獲取觀(guān)測(cè)數(shù)據(jù)

      if length(ynumber)<1

      errordlg('請(qǐng)先讀入數(shù)據(jù)文件','warn');

      else

      ynumberf=myfilterlp(15,samplerate/10,ynumber,samplerate);%低通濾波

      setappdata(handles.lowpassfilter2,'ynumberf',ynumberf); %保存濾波

      %后數(shù)據(jù)

      end

      先獲取Digital Sampling 的值,根據(jù)取值得到對(duì)應(yīng)的String的值,即為采樣率,從Select File調(diào)取數(shù)據(jù),進(jìn)行濾波,之后保存濾波后的數(shù)據(jù)以備其他控件調(diào)用。

      圖2所示為軟件的Select File功能、濾波前后對(duì)比繪圖、軟件控件操作的驗(yàn)證及警告功能等。

      4 結(jié)論和討論

      綜上所述,基于應(yīng)用需求,設(shè)計(jì)了基于MATLAB GUI的數(shù)據(jù)格式標(biāo)準(zhǔn)化軟件,經(jīng)過(guò)界面設(shè)計(jì),數(shù)據(jù)傳遞函數(shù)調(diào)用編程等,完成了控件之間的操作和數(shù)據(jù)傳遞,實(shí)現(xiàn)了軟件的各個(gè)功能。

      基于MATLAB GUI軟件設(shè)計(jì),將MATLAB的強(qiáng)大的數(shù)據(jù)處理能力與友好的圖形用戶(hù)界面相結(jié)合,實(shí)現(xiàn)了MATLAB功能的黑箱操作,極大地拓展了MATLAB數(shù)據(jù)處理能力的受眾。而且MATLAB提供的GUIDE開(kāi)發(fā)環(huán)境簡(jiǎn)便易用,降低了界面設(shè)計(jì)的復(fù)雜度,提高了設(shè)計(jì)效率。但是MATLAB GUI基于控件的界面,在進(jìn)行界面設(shè)計(jì)時(shí)需要進(jìn)行綜合考慮,花費(fèi)較多精力,不適用于大型程序的開(kāi)發(fā)。對(duì)于每個(gè)控件的屬性進(jìn)行設(shè)定時(shí)容易引起錯(cuò)誤,從而導(dǎo)致已經(jīng)設(shè)計(jì)好的界面無(wú)法用GUIDE打開(kāi),只能重新設(shè)計(jì)。而且,MATLAB程序的封裝性相對(duì)較差。但是在進(jìn)行數(shù)據(jù)和圖像處理時(shí),MATLAB GUI無(wú)疑具有較大優(yōu)勢(shì)。

      參考文獻(xiàn):

      [1] 陳懷琛.MATLAB及其在理工課程中的應(yīng)用指南[M].西安:西安電子科技大學(xué)出版社,2000.

      [2] 紀(jì)元法,孫希延,施滸立.MATLAB的兩種圖形用戶(hù)界面參數(shù)輸入方法[J].電腦知識(shí)與技術(shù),2008,13:728-731.

      [3] 焦勇,周喻虹.基于MATLAB的快速圖形化數(shù)據(jù)處理軟件設(shè)計(jì)[J].電子科技,2005(7):40-42.

      [4] 余承依.基于Matlab數(shù)值計(jì)算的GUI設(shè)計(jì)[J].漳州師范學(xué)院學(xué)報(bào):自然科學(xué)版,2004,17(4):38-40.

      [5] 張志涌.精通MATLAB 6.5版[M].北京:北京航空航天大學(xué)出版社,2003.

      猜你喜歡
      軟件設(shè)計(jì)數(shù)據(jù)格式
      在智能交通系統(tǒng)中PLC數(shù)據(jù)格式轉(zhuǎn)換方法的研究
      基于STC單片機(jī)的廚房智能安全管控系統(tǒng)的設(shè)計(jì)
      基于STM8S903K3的序列打螺絲夾具的軟件設(shè)計(jì)
      JCI標(biāo)準(zhǔn)下發(fā)送調(diào)配部軟件設(shè)計(jì)及應(yīng)用
      一種VHDL語(yǔ)言代碼重用的方法
      科技視界(2016年20期)2016-09-29 13:33:02
      論子函數(shù)在C語(yǔ)言數(shù)據(jù)格式輸出中的應(yīng)用
      DWG與SHP數(shù)據(jù)格式互轉(zhuǎn)換方法研究——以龍巖規(guī)劃測(cè)繪數(shù)據(jù)為例
      基于A(yíng)rcGIS的規(guī)劃數(shù)據(jù)格式轉(zhuǎn)換研究
      兴隆县| 上思县| 九江市| 榆林市| 布拖县| 常德市| 治多县| 泰来县| 青海省| 维西| 济宁市| 紫云| 嘉荫县| 左贡县| 广州市| 天镇县| 和平区| 施秉县| 福鼎市| 乳源| 华容县| 本溪市| 普宁市| 任丘市| 波密县| 中西区| 和田县| 攀枝花市| 南郑县| 雷州市| 陵川县| 竹北市| 安远县| 防城港市| 阜平县| 藁城市| 边坝县| 房产| 额敏县| 镇远县| 蒲城县|