📄 readlevelnetdata.m
字号:
function [ed,dd,sd,gd,pn,h0,k1,k2,h1,s]=readlevelnetdata
global pathname net_name s_datafile b_datafile;
global ed dd sd pn gd h0 k1 k2 h1 s k11 k12;
k1=[];k2=[];h=[];s=[];
s_datafile='.txt'; b_datafile='_1.txt';
if(isempty(pathname)|isempty(net_name))
[filename,pathname]=uigetfile('*.txt','Input filename');
i=find('.'==filename);
net_name=filename(1:i-1);
end
fid1=fopen(strcat(pathname,net_name,s_datafile),'rt');
if(fid1==-1)
msgbox('Input File or Path is not correct','Warning','warn');
return;
end %open a file to read
%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',ed); %已知点高程
h0(dd+1:ed+dd)=h0(1:ed);
heightdiff=fscanf(fid1,'%f',[4,gd]);
heightdiff=heightdiff';
k1=heightdiff(:,1); %起点
k2=heightdiff(:,2); %终点
k11=heightdiff(:,1); %起点
k12=heightdiff(:,2); %终点
h1=heightdiff(:,3); %高差
s=heightdiff(:,4); %距离
fclose('all');
%点号转换
[k1,k01]=chkdat(sd,pn,k1);
[k2,k02]=chkdat(sd,pn,k2);
h0(1:dd)=20000.;
ie=0;
while(1)%计算近似高程
for k=1:gd
i=k1(k);
j=k2(k);
if(h0(i)<1e4&h0(j)>1e4)
h0(j)=h0(i)+h1(k);
ie=ie+1;
end
if(h0(i)>1e4&h0(j)<1e4)
h0(i)=h0(j)-h1(k);
ie=ie+1;
end
end
if(ie==dd)
break;
end
end
h0=reshape(h0,length(h0),1);
return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -