⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readlevelnetdata.m

📁 利用MATLAB实现了对测量中的平面网
💻 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 + -