亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        VC++6.0與MATLAB聯(lián)合編程實(shí)現(xiàn)物理實(shí)驗(yàn)數(shù)據(jù)智能處理

        2011-12-22 02:30:34王艷萍楊建宋
        關(guān)鍵詞:數(shù)據(jù)處理程序物理

        王艷萍,楊建宋

        (杭州師范大學(xué)理學(xué)院,浙江杭州 310036)

        VC++6.0與MATLAB聯(lián)合編程實(shí)現(xiàn)物理實(shí)驗(yàn)數(shù)據(jù)智能處理

        王艷萍,楊建宋*

        (杭州師范大學(xué)理學(xué)院,浙江杭州 310036)

        采用VC++6.0和MATLAB混合編程的方法,實(shí)現(xiàn)了物理實(shí)驗(yàn)數(shù)據(jù)處理系統(tǒng)的開(kāi)發(fā).實(shí)踐表明二者聯(lián)合編譯能大大提高軟件開(kāi)發(fā)效率,縮短軟件維護(hù)周期.

        VC++6.0;MATLAB;混合編程;實(shí)驗(yàn)數(shù)據(jù)處理

        0 引 言

        MATLAB是由Mathworks公司推出的用于科學(xué)計(jì)算的軟件,具有強(qiáng)大的矩陣計(jì)算和數(shù)據(jù)可視化處理能力,可以進(jìn)行數(shù)值分析、信號(hào)處理、符號(hào)運(yùn)算等多個(gè)領(lǐng)域的數(shù)學(xué)計(jì)算,也可以實(shí)現(xiàn)對(duì)圖形圖像的處理[1].不僅如此,MATLAB還具有與其他高級(jí)語(yǔ)言相似的編程特性[2].

        VC++6.0是Microsoft公司開(kāi)發(fā)的一種功能強(qiáng)大、行之有效的可視化編程工具,其友好的可視化界面方便用戶開(kāi)發(fā)Windows程序[3].但是,應(yīng)用C++編寫數(shù)據(jù)處理模塊遠(yuǎn)沒(méi)有MATLAB方便和簡(jiǎn)捷.MATLAB在數(shù)值分析和處理上是一流的,特別是在矩陣運(yùn)算方面,其中許多復(fù)雜的數(shù)值計(jì)算在VC++中很難實(shí)現(xiàn)[4].當(dāng)然,MATLAB也有它的不足.由于MATLAB程序是解釋執(zhí)行的,對(duì)程序只能解釋一句執(zhí)行一句,因此運(yùn)行速度比較慢,在做循環(huán)運(yùn)算、處理諸如遙感圖像等信息量很大的圖像時(shí),問(wèn)題就十分突出[4-5],而運(yùn)行的高效率恰恰是C++程序的優(yōu)勢(shì).另外MATLAB保存的M文件是源程序代碼,安全保密性差,用戶界面設(shè)計(jì)不如其他一些軟件方便,對(duì)計(jì)算機(jī)底層的數(shù)據(jù)訪問(wèn)也不夠靈活[6].通過(guò)VC++6.0調(diào)用MATLAB,實(shí)現(xiàn)VC++6.0與MATLAB混合編程,就可以很好地克服它們的弱點(diǎn),實(shí)現(xiàn)速度和數(shù)據(jù)處理的雙贏.VC++6.0負(fù)責(zé)開(kāi)發(fā)可視化圖形操作界面,并進(jìn)行函數(shù)調(diào)用,MATLAB負(fù)責(zé)實(shí)現(xiàn)一些復(fù)雜的計(jì)算過(guò)程,二者聯(lián)合編譯生成軟件系統(tǒng).

        1 在VC++6.0中調(diào)用MATLAB混合編程方法

        實(shí)現(xiàn)在VC++6.0中調(diào)用MATLAB進(jìn)行混合編程,有以下幾種方法:通過(guò)COM組件調(diào)用MATLAB[4],采用MATLAB自帶編譯器mcc[7-8],用Matcom將MATLAB的M文件編譯成C語(yǔ)言文件并嵌入VC[4],使用MATLABENGINE法[8-11]等.

        MATLABENGINE方法實(shí)現(xiàn)起來(lái)較為簡(jiǎn)單,不要求連接整個(gè)MATLAB只需嵌入必要的MATLABENGINE庫(kù)便可大大節(jié)省系統(tǒng)資源.文中系統(tǒng)即采用這種調(diào)用方法.

        2 用MATLAB和VC++6.0編制物理實(shí)驗(yàn)數(shù)據(jù)處理系統(tǒng)

        該系統(tǒng)在Windows95/98/2000等平臺(tái)上,使用Visual C++6.0面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言設(shè)計(jì).其主要功能體現(xiàn)在2個(gè)方面:

        1)實(shí)現(xiàn)物理實(shí)驗(yàn)數(shù)據(jù)的手動(dòng)輸入,異常數(shù)據(jù)的判斷和剔除,以不確定度傳遞公式進(jìn)行不確定度的計(jì)算,按照誤差理論和“四舍六入五成雙”的數(shù)字修約法則進(jìn)行數(shù)據(jù)的處理,實(shí)驗(yàn)結(jié)果的安全存儲(chǔ)、自動(dòng)評(píng)價(jià)與正常輸出;

        2)物理實(shí)驗(yàn)教師能瀏覽學(xué)生實(shí)驗(yàn)的原始數(shù)據(jù),獲取實(shí)驗(yàn)數(shù)據(jù)處理的結(jié)果.

        系統(tǒng)采用基于對(duì)話框的應(yīng)用程序框架,由一個(gè)主對(duì)話框和多個(gè)模態(tài)對(duì)話框組成,可分為3個(gè)模塊(即子系統(tǒng)):主控子系統(tǒng)、學(xué)生實(shí)驗(yàn)數(shù)據(jù)處理子系統(tǒng)、教師實(shí)驗(yàn)數(shù)據(jù)查詢子系統(tǒng).系統(tǒng)采用ADO訪問(wèn)數(shù)據(jù)庫(kù)技術(shù).項(xiàng)目名稱為PhyExperimentSys,打包后生成的安裝程序名為PhyExperimentSys.exe.用戶只需雙擊運(yùn)行該程序即可使用物理實(shí)驗(yàn)數(shù)據(jù)處理系統(tǒng).首先出現(xiàn)的界面如圖1所示.點(diǎn)擊“學(xué)生實(shí)驗(yàn)數(shù)據(jù)處理”按鈕,將開(kāi)始調(diào)用學(xué)生數(shù)據(jù)處理子系統(tǒng),進(jìn)入相應(yīng)界面;點(diǎn)擊“教師實(shí)驗(yàn)數(shù)據(jù)查詢”,將開(kāi)始調(diào)用教師實(shí)驗(yàn)數(shù)據(jù)查詢子系統(tǒng),進(jìn)入相應(yīng)界面;點(diǎn)擊“退出系統(tǒng)”,將退出實(shí)驗(yàn)數(shù)據(jù)處理系統(tǒng).

        圖1 系統(tǒng)啟動(dòng)界面Fig.1 The startup interface of the system

        3 實(shí)驗(yàn)數(shù)據(jù)處理模塊的實(shí)現(xiàn)

        實(shí)驗(yàn)數(shù)據(jù)處理系統(tǒng)中的10個(gè)實(shí)驗(yàn)為大學(xué)物理實(shí)驗(yàn),分為力學(xué)、電學(xué)、光學(xué)和熱學(xué)4個(gè)部分[12].該文以力學(xué)部分的“物質(zhì)密度測(cè)量實(shí)驗(yàn)”為例,說(shuō)明實(shí)驗(yàn)數(shù)據(jù)處理模塊的實(shí)現(xiàn).

        3.1 物質(zhì)密度測(cè)量模塊功能介紹

        學(xué)生單擊力學(xué)中的“物質(zhì)密度測(cè)量”實(shí)驗(yàn)后便進(jìn)入該實(shí)驗(yàn)的數(shù)據(jù)處理子模塊.實(shí)驗(yàn)數(shù)據(jù)輸入界面如圖2所示.學(xué)生正確無(wú)誤輸入小鋼球質(zhì)量的2次測(cè)量數(shù)據(jù)和直徑的5次測(cè)量數(shù)據(jù)后,單擊“計(jì)算”命令按鈕,由系統(tǒng)自動(dòng)計(jì)算小鋼球直徑的平均值、直徑的標(biāo)準(zhǔn)不確定度、小鋼球質(zhì)量的平均值、質(zhì)量的標(biāo)準(zhǔn)不確定度、小鋼球的密度和密度的標(biāo)準(zhǔn)不確定度.數(shù)據(jù)處理結(jié)果如圖3所示.不確定度的計(jì)算特別是間接不確定度的計(jì)算在VC++中不易實(shí)現(xiàn),但復(fù)雜的數(shù)值計(jì)算卻是MATLAB的強(qiáng)項(xiàng),此例中即是調(diào)用MATLAB來(lái)完成計(jì)算功能的.

        3.2 MATLAB函數(shù)源碼

        以下是程序計(jì)算部分的一部分MATLAB函數(shù)源碼(程序里出現(xiàn)的以符號(hào)“%”開(kāi)始的文字說(shuō)明皆為程序的注釋):

        3.3 在VC++6.0中使用MATLAB ENGINE,調(diào)用MATLAB,實(shí)現(xiàn)計(jì)算功能

        在“物質(zhì)密度測(cè)量”實(shí)驗(yàn)中需要測(cè)量小鋼球直徑5次、小鋼球質(zhì)量2次,共7個(gè)實(shí)驗(yàn)輸入數(shù)據(jù);計(jì)算并顯示小鋼球直徑的平均值、直徑的標(biāo)準(zhǔn)不確定度、小鋼球質(zhì)量的平均值、質(zhì)量的標(biāo)準(zhǔn)不確定度、小鋼球的密度和密度的標(biāo)準(zhǔn)不確定度,共6個(gè)實(shí)驗(yàn)輸出數(shù)據(jù).由此確定程序中需要7個(gè)輸入變量,6個(gè)輸出變量.程序設(shè)計(jì)思路如下:首先打開(kāi)MATLAB引擎,創(chuàng)建6個(gè)mxArray型數(shù)據(jù)作為輸出變量,創(chuàng)建7個(gè)mxArray型數(shù)據(jù)作為輸入變量,并把7個(gè)輸入變量寫入MATLAB引擎工作空間.然后使用函數(shù)engEvalString向MATLAB發(fā)送命令字符串,完成計(jì)算功能.緊接著獲取MATLAB引擎的輸出結(jié)果,并將結(jié)果轉(zhuǎn)換成double型.最后釋放內(nèi)存空間,關(guān)閉引擎.

        VC++6.0中調(diào)用部分的程序源碼見(jiàn)附錄.

        4 系統(tǒng)測(cè)試

        為測(cè)試實(shí)驗(yàn)數(shù)據(jù)處理系統(tǒng)的正確性,筆者以杭州師范大學(xué)物理系09級(jí)部分學(xué)生的實(shí)驗(yàn)數(shù)據(jù)作為測(cè)試用例數(shù)據(jù)(表1),將系統(tǒng)的數(shù)據(jù)處理結(jié)果與用手工方式計(jì)算的結(jié)果進(jìn)行了比較。

        按照物理實(shí)驗(yàn)中的密度計(jì)算公式以及有效數(shù)字和尾數(shù)“四舍六入五成雙”的數(shù)字修約法則,用手工方式計(jì)算處理表1中的實(shí)驗(yàn)數(shù)據(jù),結(jié)果見(jiàn)表2.

        將兩位學(xué)生的物質(zhì)密度測(cè)量實(shí)驗(yàn)數(shù)據(jù)采用該系統(tǒng)進(jìn)行處理,其結(jié)果見(jiàn)圖4、圖5所示.

        表1 測(cè)試用例實(shí)驗(yàn)數(shù)據(jù)Tab.1 Examples for experimental data

        表2 測(cè)試用例實(shí)驗(yàn)數(shù)據(jù)的手工計(jì)算結(jié)果Tab.2 The manual calculations results of examples for experimental data

        比較表2與圖4、圖5所示結(jié)果,可以看出該系統(tǒng)對(duì)學(xué)生物質(zhì)密度測(cè)量實(shí)驗(yàn)數(shù)據(jù)的處理結(jié)果是正確的.

        其他實(shí)驗(yàn)數(shù)據(jù)處理模塊的測(cè)試和物質(zhì)密度實(shí)驗(yàn)數(shù)據(jù)處理模塊的測(cè)試相同,此處不再一一給出.

        由此表明,應(yīng)用該系統(tǒng)處理物理實(shí)驗(yàn)數(shù)據(jù)的結(jié)果與按誤差理論進(jìn)行手工計(jì)算的實(shí)驗(yàn)結(jié)果一致,系統(tǒng)實(shí)驗(yàn)數(shù)據(jù)處理的正確性是可靠的.

        物理實(shí)驗(yàn)數(shù)據(jù)處理系統(tǒng)目前處于試用階段.試用該系統(tǒng)的學(xué)生普遍認(rèn)為:該系統(tǒng)的界面設(shè)計(jì)友好、操作方便、數(shù)據(jù)處理正確且快速.同時(shí),試用該系統(tǒng)的學(xué)生實(shí)驗(yàn)操作積極性普遍提高,實(shí)驗(yàn)教學(xué)效果較之以前有較大的改善.

        5 結(jié) 論

        開(kāi)發(fā)物理實(shí)驗(yàn)數(shù)據(jù)處理系統(tǒng)的實(shí)踐證明,利用MATLAB引擎可節(jié)省大量資源,應(yīng)用程序整體性比較好,能最充分地利用MATLAB的功能,縮短軟件的開(kāi)發(fā)周期,為開(kāi)發(fā)各種類型的數(shù)據(jù)處理系統(tǒng)提供了一種新的快速的方法.對(duì)要求較多復(fù)雜計(jì)算的數(shù)據(jù)處理系統(tǒng),采用VC++與MATLAB聯(lián)合編程更是得心應(yīng)手.

        [1]蘇金明,阮沈勇.MATLAB實(shí)用教程[M].北京:電子工業(yè)出版社,2005.

        [2]孫祥,徐流美,吳清.MATLAB7.0基礎(chǔ)教程[M].北京:清華大學(xué)出版社,2005.

        [3]王正軍.Visual C++6.0程序設(shè)計(jì)從入門到精通[M].北京:人民郵電出版社,2006.

        [4]景劼.在VC++中調(diào)用MATLAB混合編程的方法[J].四川兵工學(xué)報(bào),2009(10):136-137.

        [5]謝永華,傅德勝.VC++和Matlab混合編程在圖像處理中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2005,22(2):120-121.

        [6]葉鵬飛.MATLAB與VC++混合編程在系統(tǒng)辨識(shí)中的應(yīng)用[J].電腦開(kāi)發(fā)與應(yīng)用,2009,22(1):66-68.

        [7]劉蓉.Matlab與VC混合編程技術(shù)與實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2010(8):15-16.

        [8]姜長(zhǎng)元.VC與MATLAB混合編程的方法及實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2004(14):22-25.

        [9]張浩宇,張旭,趙敏.基于虛擬儀器技術(shù)的玻璃量器檢定系統(tǒng)設(shè)計(jì)[J].山東師范大學(xué)學(xué)報(bào):自然科學(xué)版,2009,24(3):19-21.

        [10]聞斌,崔建昆.Matlab與Visual C++的聯(lián)合應(yīng)用[J].計(jì)算機(jī)與現(xiàn)代化,2004(2):14-16.

        [11]孫亞萍,張慧熙.基于LABVIEW的自動(dòng)熱測(cè)試系統(tǒng)設(shè)計(jì)[J].杭州師范大學(xué)學(xué)報(bào):自然科學(xué)版,2009,8(6):463-466.

        [12]李壽松,蘇平,王曉耕,等.物理實(shí)驗(yàn)教程[M].北京:高等教育出版社,1998.

        附錄:

        以下是VC++6.0中調(diào)用部分的部分程序源碼(以符號(hào)“//”開(kāi)始的文字說(shuō)明為程序的注釋).

        The Realization of Intelligent Processing about the Physical Experiment Data by VC++6.0and MATLAB Mixed Programming

        WANG Yan-ping,YANG Jian-song

        (College of Science,Hangzhou Normal University,Hangzhou 310036,China)

        This paper used VC++6.0and MATLAB mixed programming method to realize the physics experiment data processing system development.The practice in the developing indicates that the combination of VC++6.0and MATLAB language can increase the developing efficiency of software greatly,and shorten the maintenance period.

        VC++6.0;MATLAB;mixed programming;experiment data processing

        TP312

        A

        1674-232X(2011)03-0268-07

        10.3969/j.issn.1674-232X.2011.03.016

        2010-11-17

        王艷萍(1983—),女,江蘇徐州人,科學(xué)教育專業(yè)碩士研究生,主要從事信息技術(shù)與科學(xué)教學(xué)整合研究.

        *通信作者:楊建宋(1957—),男,浙江諸暨人,教授,主要從事物理教學(xué)和凝聚態(tài)物理研究.E-mail:88972208@163.com

        猜你喜歡
        數(shù)據(jù)處理程序物理
        只因是物理
        井岡教育(2022年2期)2022-10-14 03:11:44
        認(rèn)知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補(bǔ)與極大似然估計(jì)法*
        ILWT-EEMD數(shù)據(jù)處理的ELM滾動(dòng)軸承故障診斷
        處處留心皆物理
        試論我國(guó)未決羈押程序的立法完善
        “程序猿”的生活什么樣
        三腳插頭上的物理知識(shí)
        英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
        基于希爾伯特- 黃變換的去噪法在外測(cè)數(shù)據(jù)處理中的應(yīng)用
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        亚洲av天天做在线观看| 青青草视频在线观看视频免费 | 国产suv精品一区二人妻| 亚洲成av人片无码不卡播放器| 亚洲av精品一区二区三| 97超碰精品成人国产| 人妻中文字幕无码系列| 亚洲中文无码av在线| 国产精品国产午夜免费看福利| 成人爽a毛片在线播放| 成年女人a级毛片免费观看| 成人性生交片无码免费看| 亚洲AV秘 无码一区二区三 | 久久亚洲国产精品123区| 亚洲av狠狠爱一区二区三区| 午夜不卡无码中文字幕影院| 人妻少妇av无码一区二区| 日韩国产有码在线观看视频| 亚洲成人一区二区av| 3d动漫精品啪啪一区二区免费| 久久久噜噜噜久久中文字幕色伊伊| 日本av一区二区播放| 91精品国产福利在线观看麻豆| 熟女无套内射线观56| 国产aⅴ夜夜欢一区二区三区| 久久精品国产亚洲不卡| 亚洲精品成人无限看| 亚洲暴爽av人人爽日日碰| 亚洲成a人片在线观看中| 久久女人精品天堂av影院麻| 欧美日韩国产码高清综合人成 | 亚洲精品成人网久久久久久| 亚洲精品中文字幕尤物综合| 亚洲精品国产精品乱码视色| 欧美bbw极品另类| 国产精品三级在线专区1 | 精品亚洲一区二区三区四区五区| 国产激情精品一区二区三区| 亚洲九九夜夜| 99精品国产综合久久麻豆| 日本丰满熟妇videossex8k|