matlab小程序_附合水准路线计算MATLAB小程序

 今天小编根据上期给大家分析的附合水准路线内容增加一个距离观测量,根据前视和后视观测值计算高程时,利用距离的长短分配高差改正数。给大家写一个MATLAB小程序。

01

例子

如下图所示,在水准点BM1BM2间进行水准测量,试在水准测量记录表中,进行记录与计算,并做计算校核(按照距离长短分配误差)。BM1=138.952m,BM2=142.110m。

分析:根据题目要求和下图所示的测量内容,相比前期的附合水准路线计算,下图中既有前视和后视观测值,又有距离观测值,并且根据距离的长短分配高差改正值。

881608f59d4f61a36f8fa85aa6307957.png

039e7dc88421753179e2bea1b51e0f9b.png

02

MATLAB程序编写

数据结构设计:

f7718c98fe7ddac931ac75d8e82dbe6d.png

程序编写:

clear all

clc

load('ptTab','ptTab');

[r,c]=size(ptTab);

%判断出已知高程的点

jsq=0;

bz=0;

for i=1:r

    if ptTab(i,4)~=0

        ptTab(i,6)=0;%表示这个点是已知的

        jsq=jsq+1;

        Con_D(jsq,1)=ptTab(i,4);

    end

    if ptTab(i,4)==0

        bz=bz+1;

        ptTab(i,6)=bz;%表示这个点是未知的

    end

end

%实际高差

deth=Con_D(2,1)-Con_D(1,1);

%计算出高差值

for i=1:r

    ptTab(i,7)=ptTab(i,2)-ptTab(i,3);

end

%累计高差、距离

Sum_h=0;

Sum_s=0;

for i=1:(r-1)

    Sum_h=Sum_h+ptTab(i,7);

    Sum_s=Sum_s+ptTab(i,5);

end

Co_h=deth-Sum_h;

%按照符号相反、距离长短分配高差改正数

for i=1:(r-1)

    ptTab(i,8)=ptTab(i,5)/Sum_s*Co_h;

    ptTab(i,9)=ptTab(i,7)+ptTab(i,8);

end

%计算未知点高程

Con_D0=Con_D(1,1);

Sum_h0=0;

jsq=0;

for i=1:r

    if ptTab(i,6)~=0

        jsq=jsq+1;

        Sum_h0=Sum_h0+ptTab(jsq,9);

        ptTab(i,6)=Con_D0+Sum_h0;

    end

end

msgbox '计算结束!'

计算结果:

aecc7fe7986081f9eb31604759399174.png

  大家学懂了吗?有兴趣的童靴们可以关注微信公众号:闲谈测绘。小编会每天给大家普及和介绍一些小知识、小程序和小软件。

c907d3b8b062d7d0faf0c6446f37c4d6.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值