资源简介
matlab编写的水准网平差文件,能够将已知的高程信息经过数据整理读入,自动计算出平差结果

代码片段和文件信息
%-------------------------------
% 水准网数据读入
%-------------------------------
[filenamefilepath]=uigetfile(‘水准网.txt‘‘TEXT file‘);
fn=num2str(filename);
fid1=fopen(fn);
if(fid1==-1)
msgbox(‘Input File or Path is not correct‘‘Warning‘‘want‘);
return;
end
% open a file to read
ed=fscanf(fid1‘%f‘1); % 已知点个数
dd=fscanf(fid1‘%f‘1); % 未知点个数
sd=ed+dd; % 总点数
gd=fscanf(fid1‘%f‘1); % 观测值个数
pn=fscanf(fid1‘%f‘sd); % 点号
%known data
H0=fscanf(fid1‘%f‘[2ed]); % 2*3矩阵形式的已知点点号及高程
H0=H0‘; % 3*2矩阵形式的已知点点号及高程
h01=H0(:1); % 已知点点号
h0=H0(:2); % 已知点高程
h0(dd+1:dd+ed)=h0(1:ed)
heightdiff=fscanf(fid1‘%f‘[4gd]); % 水准网观测数据信息
heightdiff=heightdiff‘;
k1=heightdiff(:1); % 起点点号
k2=heightdiff(:2); % 终点点号
h1=heightdiff(:3); % 高差观测值
dis=heightdiff(:4); % 距离观测值
fclose(‘all‘);
%-----------------------------------
%近似高程计算
%-----------------------------------
h0(1:dd)=20000;
ie=0;
while(1)
for k=1:gd
i=k1(k);
j=k2(k);
for a=1:sd
if(pn(a)==i)
m=a;
end
end
for b=1:sd
if(pn(b)==j)
n=b;
end % 点号转换
end
if(h0(m)<=1e4&h0(n)>=1e4)
h0(n)=h0(m)+h1(k);
ie=ie+1;
end
if(h0(m)>=1e4&h0(n)<=1e4)
h0(m)=h0(n)-h1(k);
ie=ie+1;
end
end
if(ie==dd)
break;
end
end
%---------------------------------
%水准网平差
%---------------------------------
A=zeros(gddd);
for k=1:gd
i=k1(k);
j=k2(k);
for a=1:sd
if(pn(a)==i)
m=a;
end
end
for b=1:sd
if(pn(b)==j)
n=b;
end
end
if n<=dd
A(kn)=1;
end
if m<=dd
A(km)=-1;
end
tl(k)=h0(m)-h0(n)+h1(k);
end % 至此为构建系数矩阵A及常数项L
[nt]=size(A);
r=n-t;
l=tl‘;
p=diag(1./dis); % 权阵
Delt_X=inv(A‘*p*A)*A‘*p*l;
h00=h0(ed+1:sd);
h0=h0(1:ed);
Xp=h0+Delt_X;
V=A*Delt_X-l;
Lp=h1+V;
%精度评定
uw0=sqrt(V‘*p*V/r);
Qxx=inv(A‘*p*A);
uwh=uw0*sqrt(diag(Qxx));
uwh(dd+1:ed+dd)=0.0;
Qff=A*Qxx*A‘;
uwl=uw0*sqrt(diag(Qff));
Xp=[Xp;h00];
h0=[h0;h00];
Delt_X=[Delt_X;zeros(ed1)];
%------------------------------------
%成果输出
%------------------------------------
[filenamepathname]=uiputfile(‘resultdata.txt‘‘TEXT file‘);
fn=num2str(filename);
fid2=fopen(fn‘wt‘);
if(fid2==-1)
msgbox(‘Error by Opening Output File‘‘Warning‘‘warn‘);
end
fprintf(fid2‘待定点高程平差值及中误差: \n pn h0(m) Delt_X(m) Xp(m) hm\n‘);
fprintf(fid2‘%5d %10.4f %10.4f %10.4f %10.4f\n‘[pnh0Delt_XX
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 737 2017-12-06 22:50 第5章 高程控制网平差程序设计\resultdata.txt
文件 3377 2017-12-06 22:50 第5章 高程控制网平差程序设计\ShuiZhunWang.m
文件 664 2017-11-07 15:42 第5章 高程控制网平差程序设计\SZWchengguoshuchu.m
文件 1167 2017-11-07 15:43 第5章 高程控制网平差程序设计\SZWduru.m
文件 684 2017-11-07 15:42 第5章 高程控制网平差程序设计\SZWjinsigaocheng.m
文件 749 2017-11-07 20:34 第5章 高程控制网平差程序设计\SZWpingcha.m
文件 123 2017-11-07 20:49 第5章 高程控制网平差程序设计\test.txt
文件 183 2017-11-07 21:26 第5章 高程控制网平差程序设计\水准网.txt
目录 0 2017-11-07 22:29 第5章 高程控制网平差程序设计
----------- --------- ---------- ----- ----
7684 9
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论