matlab小程序_简单附和水准路线计算的MATLAB小程序

 以上文提到的水准测量例子为基础,今天小编给大家讲解一道连续测站的水准测量记录表格简单MATLAB程序编写。

01

例子

  在水准点BMaBMb之间进行水准测量,所测得的各测段的高差和水准路线长如图2所示。已知BMa的高程为5.612m,BMb的高程为5.400m。试将有关数据填在水准测量高差调整表中,最后计算水准点1和2的高程。

6646349883a84e4d71f54244974335fd.png

605f3ffdc13b945f75c61066cd684572.png

02

MATLAB程序编写

  按照计算思路,将其转换为程序编写思维。首先,根据已知数据列一个计算数据结构,新建ptTab.mat文件,将已知数据存入其中,如下图所示:

bf440172b5dfadbed6e0a3d1a20536bd.png

bd7918902ef63aa32a5072db57f2356a.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,5)=0;%表示这个点是已知的

       jsq=jsq+1;

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

   end

   if ptTab(i,4)==0

       bz=bz+1;

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

   end

end

%实际高差

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

%累积距离、累计高差

Sum_dis=0;

Sum_h=0;

for i=1:(r-1)

   Sum_dis=Sum_dis+ptTab(i,2);

   Sum_h=Sum_h+ptTab(i,3);

end

Co_h=deth-Sum_h;

%按照距离长短、符号相反分配

for i=1:(r-1)

   det_Co_h(i,1)=ptTab(i,2)/Sum_dis*Co_h;

   ptTab(i,6)=det_Co_h(i,1);

   ptTab(i,7)=ptTab(i,3)+ptTab(i,6);

end

%计算未知点高程

Con_D0=Con_D(1,1);

Sum_h0=0;

jsq=0;

for i=1:r

   if ptTab(i,5)~=0

       jsq=jsq+1;

       Sum_h0=Sum_h0+ptTab(jsq,7);

       ptTab(i,5)=Con_D0+Sum_h0;

   end

end

msgbox '计算结束!'

将计算结果展示如下:

ede599e5b7ed8faffa49107fc32fe7b0.png

  原计算结果如下所示,则可以得到程序计算结果是正确的。

8dd8a608deab5093751464bce85df5a9.png

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

5fe20dbc6e5ae1982fd5b9160c7f713d.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值