林敬娜,程 鋼,路曉明,張啟華,劉玲玲
(1.河南理工大學(xué) 測(cè)繪與國(guó)土信息工程學(xué)院,河南 焦作 454003;2.河南省自然資源調(diào)查規(guī)劃院,鄭州 450052;3.江蘇省地質(zhì)測(cè)繪院,南京 211102)
隨著經(jīng)濟(jì)社會(huì)發(fā)展和新一輪科技革命,測(cè)繪科學(xué)與技術(shù)得到了長(zhǎng)足的發(fā)展,測(cè)繪的內(nèi)涵及形式也發(fā)生巨大的變化。測(cè)量平差作為測(cè)繪學(xué)科的基礎(chǔ)理論與方法,是測(cè)繪科學(xué)研究及實(shí)際測(cè)繪工作的基礎(chǔ)和必備工具。測(cè)量平差的理論性和綜合性比較強(qiáng),計(jì)算過程中涉及矩陣計(jì)算,公式較多,計(jì)算量大,僅僅依靠人工計(jì)算過程繁雜,簡(jiǎn)單易用的計(jì)算機(jī)軟件平差符合當(dāng)前的用戶需求。
Matlab具有強(qiáng)大的數(shù)值計(jì)算性能,在涉及大量數(shù)據(jù)處理分析特別是矩陣計(jì)算方面具有其他一些程序語(yǔ)言難以超越的便捷性,在測(cè)量平差中進(jìn)行矩陣計(jì)算和線性方程組解算時(shí)具有獨(dú)特優(yōu)勢(shì)。C#具有良好的圖形交互界面和窗體應(yīng)用程序開發(fā)功能,利用其與Matlab混合編程,能夠快速實(shí)現(xiàn)測(cè)量數(shù)據(jù)平差的相關(guān)功能。
潘雄、白征東等人闡述了Matlab在測(cè)量平差中的優(yōu)勢(shì),并以間接平差為例介紹了實(shí)現(xiàn)過程[1-2]。杜澤明等人給出了C#與Matlab混合進(jìn)行平差程序設(shè)計(jì)的基本框架,但未詳述具體平差方法的實(shí)現(xiàn)過程[3]。朱杰等人基于C#提出矩陣類的設(shè)計(jì)并探討其在平差程序設(shè)計(jì)中的應(yīng)用[4]。劉淼等人以間接平差為例探討基于Matlab Web Server實(shí)現(xiàn)平差計(jì)算的方法,該程序只能在網(wǎng)絡(luò)支持條件下使用[5]。文中在綜合以上研究成果優(yōu)點(diǎn)的基礎(chǔ)上,基于Matlab與C#設(shè)計(jì)實(shí)現(xiàn)一套計(jì)算簡(jiǎn)單方便的測(cè)量平差系統(tǒng),以條件平差和間接平差為例,對(duì)實(shí)現(xiàn)過程的關(guān)鍵方法進(jìn)行探討,為相關(guān)工作提供參考。
1.1.1 Matlab簡(jiǎn)介
Matlab語(yǔ)言是一種功能十分強(qiáng)大的計(jì)算機(jī)語(yǔ)言,數(shù)值計(jì)算性能非常高,是一種可以應(yīng)用于數(shù)值分析、程序開發(fā)以及數(shù)據(jù)可視化的高級(jí)技術(shù)計(jì)算語(yǔ)言和環(huán)境。Matlab以矩陣計(jì)算作為基礎(chǔ),擁有完備的函數(shù)集,將數(shù)值計(jì)算、程序設(shè)計(jì)與數(shù)據(jù)可視化集于一體,可以進(jìn)行數(shù)學(xué)計(jì)算、符號(hào)運(yùn)算、可視化建模、圖形處理等等。無(wú)論是在科學(xué)研究還是工程領(lǐng)域中都具有功能豐富的應(yīng)用工具箱[6],應(yīng)用范圍廣泛,能夠幫助用戶解決復(fù)雜的數(shù)學(xué)計(jì)算與分析問題,大大縮減用戶編程計(jì)算的工作量。
1.1.2 C#簡(jiǎn)介
C#是一種C和C++衍生出來(lái)的基于.NET框架的面向?qū)ο蟮木幊陶Z(yǔ)言,由微軟公司發(fā)布。它擁有非常多的類庫(kù),使用方便,利于學(xué)習(xí),并且具有非常友好的用戶界面,可用于Windows桌面應(yīng)用程序、Web應(yīng)用程序、Web服務(wù)程序、Windows服務(wù)程序等程序開發(fā)。C#推出后憑借其強(qiáng)大的操作能力、面向組件、面向?qū)ο蟆⒗陂_發(fā)的特點(diǎn)受到廣大程序員的喜愛與支持。
1.1.3 Matlab與C#混合編程
Matlab與C#混合編程,充分利用Matlab強(qiáng)大的計(jì)算能力和C#中Winform直觀的顯示效果,進(jìn)行優(yōu)勢(shì)互補(bǔ)。混合編程實(shí)現(xiàn)方法多種多樣,文中采用C#調(diào)用Matlab編寫的動(dòng)態(tài)鏈接dll文件的方法,首先將平差處理函數(shù)在Matlab中實(shí)現(xiàn)并封裝為dll文件,然后在VS中建立C#窗體應(yīng)用程序進(jìn)行dll文件的引用,實(shí)現(xiàn)Matlab與C#的混合編程。
在測(cè)量過程中,由于測(cè)量?jī)x器精度、人為因素和外界條件的一些影響,存在不可避免的測(cè)量誤差,測(cè)量平差的目的即在于通過平差方法消除觀測(cè)誤差產(chǎn)生的矛盾,計(jì)算出觀測(cè)值最可靠的結(jié)果,并且進(jìn)行測(cè)量成果的精度評(píng)定。
測(cè)量學(xué)中涉及多種類型控制網(wǎng)的平差,有導(dǎo)線網(wǎng)平差、水準(zhǔn)網(wǎng)平差、GPS網(wǎng)平差等,測(cè)量平差方法也有多種:間接平差,條件平差,附有限制條件的間接平差,附有未知參數(shù)的條件平差等。每一種平差方法都有其特定的平差模型和精度評(píng)定的方法。在進(jìn)行測(cè)量平差計(jì)算時(shí),要根據(jù)不同計(jì)算模型的特點(diǎn)建立函數(shù)組,并選擇相應(yīng)的計(jì)算方法,可以生成函數(shù)庫(kù),通過函數(shù)調(diào)用完成測(cè)量數(shù)據(jù)分析和平差的處理工作。下文以間接平差和條件平差在水準(zhǔn)網(wǎng)平差中的應(yīng)用為例,介紹開發(fā)過程。
1.2.1 間接平差
間接平差法又叫參數(shù)平差法,該方法選定合適數(shù)量并且與觀測(cè)值存在一定數(shù)學(xué)關(guān)系的獨(dú)立未知量作為參數(shù),函數(shù)模型是將每個(gè)觀測(cè)值都分別表達(dá)成選定參數(shù)的函數(shù)[7]。間接平差數(shù)學(xué)模型比較簡(jiǎn)單,便于評(píng)定平差值及其函數(shù)的精度。模型求解方法是按照最小二乘原理的方法,求自由極值,解出參數(shù)的最或然值,從而求得各觀測(cè)值的平差值。
(1)
式中:B表示誤差方程的系數(shù)陣;l表示常數(shù)項(xiàng);V表示觀測(cè)值的改正數(shù)。
Nbb=BTPB,W=BTPl.
(2)
(3)
解求出平差值之后,還要分析平差值的中誤差,即為精度評(píng)定:
(4)
1.2.2 條件平差
在測(cè)量工作中,為了能及時(shí)發(fā)現(xiàn)錯(cuò)誤,盡可能地減少測(cè)量誤差,提高測(cè)量精度和效率,測(cè)量人員往往會(huì)進(jìn)行必要的多余觀測(cè)。一個(gè)幾何模型中條件方程個(gè)數(shù)由多余觀測(cè)數(shù)決定,有幾個(gè)多余觀測(cè),就會(huì)產(chǎn)生幾個(gè)條件方程,條件平差法就是以條件方程為函數(shù)模型的平差方法。因此,條件平差以觀測(cè)量間的函數(shù)關(guān)系為條件構(gòu)造條件方程,不含獨(dú)立參數(shù)。這些條件方程間需要獨(dú)立,保證列出的方程組線性無(wú)關(guān)[8]。
設(shè)平差問題中有n個(gè)觀測(cè)值L,已知觀測(cè)值協(xié)因數(shù)陣Q=P-1,必要觀測(cè)數(shù)為t。條件平差的方程模型為:
AV-W=0.
(5)
式中:A表示條件方程的系數(shù)陣;W表示常數(shù)項(xiàng);V表示觀測(cè)值的改正數(shù)。
實(shí)際上,條件方程求解的關(guān)鍵是改正數(shù)V的求解。根據(jù)最小二乘原理,V必須滿足VTPV=min的要求,用拉格朗日求極值的方法可得到觀測(cè)值改正數(shù):
V=P-1ATK.
(6)
其中
則觀測(cè)值的平差值
(7)
就可以得到各個(gè)觀測(cè)量的平差值。然后進(jìn)行精度評(píng)定,分析平差值函數(shù)的中誤差:
(8)
每種測(cè)量平差方法都有其自身的平差模型與解算步驟,文中將每種測(cè)量平差方法分別編寫成為Matlab中的function函數(shù),保證方法的獨(dú)立性,便于后續(xù)調(diào)用。下文以水準(zhǔn)平差為例,編寫相關(guān)函數(shù)。
2.1.1 間接平差
間接平差的函數(shù)形式為function [X1,L1,D1]=jianjieAdjustment(a1,b1,c1)。其中function是函數(shù)聲明,jianjieAdjustment是函數(shù)名稱。傳入?yún)?shù)a1,b1,c1為3個(gè)矩陣:a1矩陣行數(shù)為水準(zhǔn)網(wǎng)測(cè)段數(shù)(觀測(cè)值總數(shù)),列數(shù)為4,分別表示每測(cè)段路線的起點(diǎn)編號(hào)、終點(diǎn)編號(hào)、高差和水準(zhǔn)路線長(zhǎng)度;b1矩陣行數(shù)為已知點(diǎn)個(gè)數(shù),列數(shù)為2,分別表示已知高程點(diǎn)編號(hào)和高程數(shù)值;c1為1*4矩陣,分別表示水準(zhǔn)網(wǎng)測(cè)段數(shù)、水準(zhǔn)點(diǎn)個(gè)數(shù)、未知高程點(diǎn)個(gè)數(shù)和已知高程點(diǎn)個(gè)數(shù)。輸出參數(shù)X1,L1,D1為3個(gè)矩陣,分別表示高程平差值、高差平差值和高程平差值的協(xié)方差陣。注意水準(zhǔn)網(wǎng)中的水準(zhǔn)點(diǎn)點(diǎn)號(hào)按照先已知水準(zhǔn)點(diǎn),后未知水準(zhǔn)點(diǎn)的規(guī)則依次進(jìn)行編號(hào)。
函數(shù)設(shè)計(jì)主要分為三部分:
第一,誤差方程系數(shù)矩陣和常數(shù)項(xiàng)矩陣的獲取。系數(shù)矩陣B為n×t矩陣,常數(shù)項(xiàng)矩陣l為n×1矩陣,n表示測(cè)段個(gè)數(shù),t表示未知點(diǎn)個(gè)數(shù),將每測(cè)段的起點(diǎn)和終點(diǎn)高程是否已知作為判定規(guī)則,逐測(cè)段來(lái)計(jì)算B和l中的每個(gè)元素B(i,j)與l(i,j)。過程代碼如下:①當(dāng)?shù)趇測(cè)段起點(diǎn)和終點(diǎn)高程均未知時(shí),B(i,qi-y)=-1;B(i,zh-y)=1;②當(dāng)?shù)趇測(cè)段起點(diǎn)高程已知,終點(diǎn)高程未知時(shí),B(i,zh-y)=1,且可計(jì)算終點(diǎn)近似高程X0(zh,1)=X0(qi,1)+L(i,1);③當(dāng)?shù)趇測(cè)站起點(diǎn)高程未知,終點(diǎn)高程已知時(shí)B(i,qi-y)=-1,且可計(jì)算起點(diǎn)近似高程X0(qi,1)=X0(zh,1)-L(i,1);B矩陣中其余元素均為0。常數(shù)項(xiàng)矩陣元素l(i,1)=L(i,1)-X0(point2,1)+X0(point1,1)。其中qi表示起點(diǎn)編號(hào),zh表示終點(diǎn)編號(hào),y表示已知高程點(diǎn)個(gè)數(shù),L表示觀測(cè)值。
第二,誤差方程的求解。借助Matlab的矩陣計(jì)算方法,設(shè)置輔助量Nbb=B′*P*B,W=B′*P*l;計(jì)算未知參數(shù)x=inv(Nbb)*W,高差改正數(shù)V=B*x-l,高差平差值L1=L+V,高程平差值X1=X0((y+1):end,1)+x。
第三,精度評(píng)定,即參數(shù)平差值協(xié)方差的計(jì)算。首先計(jì)算單位權(quán)中誤差:d0=sqrt ((V′*P*V)/(n-t)),n-t表示多余觀測(cè)數(shù)。其次,求取參數(shù)平差值協(xié)方差陣D1=d0*d0 *Q1,其中Q1=inv(Nbb)表示參數(shù)平差值的協(xié)因數(shù)陣。最后求取參數(shù)及觀測(cè)值的中誤差。
2.1.2 條件平差
條件平差的函數(shù)形式為function [L1,H0,D1]=tiaojianAdjustment(a1,b1,c1)。其中傳入?yún)?shù)與間接平差一致,輸出參數(shù)L1,H0,D1為3個(gè)矩陣,分別表示高差平差值、高程平差值和高差平差值協(xié)方差陣。水準(zhǔn)點(diǎn)點(diǎn)號(hào)編號(hào)規(guī)則不變。
條件平差的函數(shù)設(shè)計(jì)分為誤差方程系數(shù)矩陣和常數(shù)項(xiàng)矩陣的獲取、條件方程的求解、未知點(diǎn)高程計(jì)算、精度評(píng)定4部分。
條件方程的系數(shù)矩陣A和常數(shù)項(xiàng)矩陣W運(yùn)用文獻(xiàn)[9]的方法,通過引入一個(gè)傳遞矩陣t來(lái)獲取,t為N*n的矩陣,n表示測(cè)段個(gè)數(shù),N表示水準(zhǔn)點(diǎn)個(gè)數(shù)。根據(jù)參與計(jì)算的測(cè)段路線的起點(diǎn)和終點(diǎn)高程是否已知,未知水準(zhǔn)點(diǎn)的近似高程是否已經(jīng)計(jì)算得到為判定規(guī)則,計(jì)算傳遞矩陣t中的元素t(i,j)[9]。傳遞矩陣t計(jì)算完成后,再根據(jù)傳遞矩陣t計(jì)算系數(shù)矩陣A和常數(shù)項(xiàng)矩陣W,A為r*n矩陣,W為r*1矩陣,n表示測(cè)段個(gè)數(shù),r表示多余觀測(cè)數(shù),若某測(cè)段路線高差未用于計(jì)算傳遞矩陣t,則第m個(gè)條件方程的系數(shù)A(m,1:n)=t(qi,1:n)-t(zh,1:n);A(m,k)=1;W(m,1)=0(j,1)-H0(i,1)-L(k,1),H0和L分別表示高程和高差觀測(cè)值。
條件方程的求解根據(jù)條件平差公式計(jì)算,改正數(shù)V=inv(P)*A′*K,其中聯(lián)系數(shù)K=inv (Naa)*W,Naa=A*inv(P)*A′,高差平差值L1=L+V。
未知高程點(diǎn)的高程計(jì)算根據(jù)已知高程點(diǎn)的高程與條件方程求解得到的高差平差值計(jì)算,其值由測(cè)段起點(diǎn)高程與測(cè)段高差之和,或測(cè)段終點(diǎn)高程與測(cè)段高差之差依次求取,直至所有水準(zhǔn)點(diǎn)高程計(jì)算完成。
精度評(píng)定實(shí)現(xiàn)了觀測(cè)值平差值的精度計(jì)算。單位權(quán)中誤差:d0=sqrt((V′*P*V)/r),r表示多余觀測(cè)數(shù)。觀測(cè)值平差值協(xié)方差陣Ql=Q-Q*A′*inv(Naa)*A*Q,其中Q表示觀測(cè)值的協(xié)因數(shù)陣。觀測(cè)值平差值協(xié)方差陣D1=d0*d0*Q1,D1矩陣各對(duì)角線即為高差平差值的中誤差。
Matlab與C#混合編程利用了Matlab強(qiáng)大的計(jì)算能力和C#友好的用戶界面的優(yōu)勢(shì),制作一個(gè)測(cè)量平差系統(tǒng)平臺(tái),能夠更加方便地進(jìn)行平差計(jì)算,進(jìn)行平差網(wǎng)的直觀圖形顯示,并且可以脫離Matlab與VS的系統(tǒng)軟件,也不需要掌握Matlab與C#的軟件使用和程序語(yǔ)法規(guī)則,而且此平臺(tái)操作簡(jiǎn)單,可完成不同測(cè)量平差方法進(jìn)行平差的功能。
2.2.1 系統(tǒng)界面搭建
C#的窗體應(yīng)用程序可以通過工具箱中的控件搭建用戶界面,直接拖拽到窗體中就可完成測(cè)量平差平臺(tái)所需界面的設(shè)計(jì),并為控件按鈕添加事件相應(yīng)程序。測(cè)量平差系統(tǒng)平臺(tái)搭建界面如圖1所示,其中文件菜單提供了數(shù)據(jù)輸入、保存和輸出等功能。測(cè)量數(shù)據(jù)輸入文件存儲(chǔ)測(cè)段起點(diǎn)、終點(diǎn)及其高差和水準(zhǔn)路線長(zhǎng)度等觀測(cè)數(shù)據(jù);高程數(shù)據(jù)輸入文件存儲(chǔ)已知高程點(diǎn)號(hào)和高程等數(shù)據(jù);點(diǎn)號(hào)數(shù)據(jù)輸入文件存儲(chǔ)測(cè)段個(gè)數(shù)、水準(zhǔn)點(diǎn)個(gè)數(shù)、未知點(diǎn)個(gè)數(shù)和已知點(diǎn)個(gè)數(shù)等數(shù)據(jù)。平差網(wǎng)圖形輸入文件可以導(dǎo)入測(cè)量平差網(wǎng)的拓?fù)浣Y(jié)構(gòu),以供實(shí)現(xiàn)圖形可視化,方便計(jì)算者直觀地進(jìn)行分析。平差方法菜單提供5種平差方法可供選擇,分別實(shí)現(xiàn)不同平差方法的平差計(jì)算。
圖1 系統(tǒng)界面
2.2.2 動(dòng)態(tài)鏈接庫(kù)(DLL)生成
動(dòng)態(tài)鏈接庫(kù)(DLL)是一種可實(shí)現(xiàn)代碼共享和重用的基于Windows的程序模塊,包含可執(zhí)行代碼、數(shù)據(jù)、資源等[10]。Matlab有自帶編譯器,可創(chuàng)建function函數(shù)的動(dòng)態(tài)鏈接庫(kù),即.dll文件。在Matlab Compiler窗口,選擇Library Compiler,在設(shè)置窗口中選擇.NET Assembly,加載編寫好的測(cè)量平差的M文件,設(shè)置類名和路徑,即可利用Package進(jìn)行打包,完成動(dòng)態(tài)鏈接庫(kù)創(chuàng)建。
2.2.3 C#對(duì)DLL文件的調(diào)用
1)項(xiàng)目準(zhǔn)備。實(shí)現(xiàn)C#與Matlab的混合編程,需要在C#項(xiàng)目中添加上述生成的DLL文件以及MWArray.dll環(huán)境文件,然后才可以實(shí)現(xiàn)Matlab函數(shù)方法調(diào)用及數(shù)據(jù)參數(shù)轉(zhuǎn)換。引用添加成功后,需要為項(xiàng)目代碼添加必要的命名空間,例如數(shù)據(jù)轉(zhuǎn)換需要:using MathWorks.Matlab.NET.Arrays。
2)控件代碼編寫。由于測(cè)量平差需要輸入的數(shù)據(jù)繁多,規(guī)定以txt文本文檔的形式輸入??刂瞥绦蛲ㄟ^輸入數(shù)據(jù)文件獲取相關(guān)的參數(shù),并存入數(shù)組之中以供計(jì)算使用。
C#中調(diào)用Matlab函數(shù)的關(guān)鍵是掌握數(shù)據(jù)類型一致的矩陣與數(shù)組之間的轉(zhuǎn)換,將C#中的參數(shù)輸入到Matlab函數(shù)時(shí),要將參數(shù)轉(zhuǎn)化為Matlab的參數(shù)形式,通常是MWArray類型。例如條件平差參數(shù)a1數(shù)據(jù)類型轉(zhuǎn)換:MWNumericArraya1=new MWNumericArray(p1),其中MWNumericArray是Matlab與C#的中間數(shù)據(jù)類型。Matlab函數(shù)返回的參數(shù),也要轉(zhuǎn)化為C#用的類型,比如數(shù)組或者數(shù)值類型。C#中調(diào)用條件平差函數(shù)封裝成的類方法的調(diào)用代碼如下,以agrsIn表示輸入的矩陣數(shù)組,agrsOut表示返回的矩陣數(shù)組:
MWArray[] agrsIn = new MWArray[] { a1, b1,c1 };
MWArray[] agrsOut = new MWArray[3];
TiaojianAdjustment.Class1 level = new TiaojianAdjustment.Class1();
level.tiaojianAdjustment(3, ref agrsOut, agrsIn);
平差計(jì)算完成后,可借助文本框完成結(jié)果輸出。
2.2.4 可執(zhí)行文件生成
將C#中的測(cè)量平差數(shù)據(jù)處理窗體程序生成可執(zhí)行的exe文件,便于程序分發(fā)和共享。將C#窗體程序中引用的DLL文件放入項(xiàng)目文件夾下,利用VS自帶的打包項(xiàng)目功能或者第三方打包軟件將此項(xiàng)目生成exe文件即可,程序可不依賴于Matlab和VS軟件環(huán)境運(yùn)行。
文中以水準(zhǔn)平差為例說(shuō)明平差程序的應(yīng)用,在某校園內(nèi)布置水準(zhǔn)網(wǎng)如圖2所示,利用自動(dòng)安平水準(zhǔn)儀(KL80)進(jìn)行四等水準(zhǔn)觀測(cè),水準(zhǔn)網(wǎng)中水準(zhǔn)路線閉合差、前后視距差、紅黑面讀數(shù)差、紅黑面所測(cè)高差之差等均符合國(guó)家四等水準(zhǔn)測(cè)量規(guī)范。A和D兩點(diǎn)表示已知水準(zhǔn)點(diǎn),HA=94.957 m,HD=94.919 m,B,C,E,F(xiàn)4點(diǎn)表示待定水準(zhǔn)點(diǎn),其余的觀測(cè)高差和相應(yīng)的水準(zhǔn)路線長(zhǎng)度見表1,求解待定點(diǎn)的高程平差值及中誤差。
圖2 水準(zhǔn)網(wǎng)路線圖
表1 實(shí)驗(yàn)相關(guān)數(shù)據(jù) m
將此水準(zhǔn)網(wǎng)中的水準(zhǔn)點(diǎn)從已知到未知依次編號(hào),A,D分別為1、2號(hào)點(diǎn),B,C,E,F分別為3、4、5、6號(hào)點(diǎn),整理觀測(cè)數(shù)據(jù),在系統(tǒng)中輸入整理好的已知數(shù)據(jù)文件,分別進(jìn)行條件平差(見圖3)和間接平差(見圖4)。
將其計(jì)算結(jié)果保留三位小數(shù)如表2所示。
由表2結(jié)果可見,在此水準(zhǔn)網(wǎng)中,待定點(diǎn)B的高程中誤差最小,精度最高,E的高程中誤差最大,精度最低。并且此例采用兩種平差方法計(jì)算的結(jié)果相同,印證了同一個(gè)平差問題無(wú)論是采用間接平差還是條件平差,其結(jié)果是一致的,因此可以驗(yàn)證文中平差算法具有可行性。利用Matlab與C#混合編程實(shí)現(xiàn)的測(cè)量平差數(shù)據(jù)處理系統(tǒng)軟件使用方便,計(jì)算準(zhǔn)確,解決了人工計(jì)算所帶來(lái)的麻煩。
圖3 條件平差計(jì)算結(jié)果
圖4 間接平差計(jì)算結(jié)果
表2 計(jì)算結(jié)果
文中以水準(zhǔn)網(wǎng)條件平差和間接平差為例,說(shuō)明Matlab與C#混合編程實(shí)現(xiàn)測(cè)量平差程序的方法,體現(xiàn)了Matlab具有強(qiáng)大數(shù)據(jù)計(jì)算以及C#具有良好的用戶界面開發(fā)功能的優(yōu)勢(shì),探究和驗(yàn)證了Matlab與C#混合編程在測(cè)量平差數(shù)據(jù)處理中的實(shí)用性。文中設(shè)計(jì)了一套測(cè)量平差簡(jiǎn)單計(jì)算的應(yīng)用系統(tǒng),使得用戶在不需要掌握Matlab與VS軟件和程序語(yǔ)言專業(yè)語(yǔ)法命令的情況下即可使用該程序進(jìn)行平差,操作簡(jiǎn)單并且易用,實(shí)例證明了方法的可行性。