📄 level_close1.m
字号:
function level_close1 %优化树型法
global pathname net_name s_datafile b_datafile a1_datafile;;
global ed dd sd pn gd h0 k1 k2 h1 dh s k11 k12;
fit2=fopen(strcat(pathname,net_name,'_close.txt'),'wt');
fprintf(fit2,' 水准路线闭合差\n');
fprintf(fit2,'=================================================================\n');
fprintf(fit2,'环号 闭合环点号 闭合环长度 闭合差 允许闭合差\n');
[RT,Q1,Q2]=closecirclesearch(k1,k2,sd,gd);
[aa,bb]=size(RT);
hh=[];
for ii=1:bb %排序后的高差和距离
for i=1:bb
if (Q1(ii)==k11(i) & Q2(ii,1)==k12(i))
nn=i;
hh0=h1(i);
ss0=s(i);
end
end
hh(ii)=hh0;
ss(ii)=ss0;
end
hh=hh';
ss=ss';
cl1=0;
for i=1:aa
mm=[];nn=[];n=[];
RR=RT(i,:);
cl1=RT(i,:)*hh; %计算每个环的闭合差
cl2=abs(RT(i,:))*ss; %闭合环的长度
cl3=0.02*sqrt(cl2); %计算每个环的允许闭合差
[i1,j1]=find(RR~=0); %查找非0元素的行列号
for j=1:length(j1)
mm(j)=Q1(j1(j));
nn(j)=Q2(j1(j));
end
mm=[mm nn];
cc=length(mm);
for m=1:cc-1 %将起终点号混合排序
im=m;
for n=m+1:cc
if mm(n)<mm(im)
im=n;
end
end
t=mm(m);
mm(m)=mm(im);
mm(im)=t;
end
for ii=1:length(nn)-1; %查找出闭合环的点号
n(1)=mm(1);
for j=1:cc
if n(ii)~=mm(j)
n(ii+1)=mm(j);
end
end
end
fprintf(fit2,'%3d ',i);
fprintf(fit2,'%3d %3d %3d %3d ',n(1),n(2),n(3),n(1));
fprintf(fit2,' %10.3f %10.3f %10.3f\n',cl2,cl1,cl3);
end
fprintf(fit2,'============================================================\n');
fclose(fit2);
open(strcat(pathname,net_name,'_close.txt'));
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -