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

📄 poleterm1.m

📁 利用MATLAB实现了对测量中的平面网
💻 M
字号:
function [cpp2,mr,tr]=poleterm1(sd,e,d,sid,g,f,dir,si,ni,pn,md)
global pathname net_name c2_datafile
fit2=fopen(strcat(pathname,net_name,c2_datafile),'wt');
cpp2=[];
n=0;
tr=[];
mr=[];
for i=1:sd
    num=0;
    cpp=[];temp4=[];
    temp4=find(i==f);
    xx=[];  %存放外围点名
    for k=temp4
        xx=[xx g(k)];
    end
    num=length(xx);
    if num>2
        numb=0;
        d1=[];d2=[];ds=[];
        for i0=1:num-1
            for j0=i0+1:num
                [dir1,kdir1]=finddir(xx(i0),xx(j0),g,f,dir,si,ni);%是否存在1-2方向观测
                [dir2,kdir2]=finddir(xx(j0),xx(i0),g,f,dir,si,ni);%是否存在2-1方向观测
                if kdir1+kdir2==2
                    numb=numb+1;
                    d1(numb)=xx(i0);
                    d2(numb)=xx(j0);
                    ds(numb)=1000;
                end
            end
        end
        dd1=zeros(1,length(d1));
        dd2=zeros(1,length(d1)); 
        for y=1:num  
            for y1=1:length(d1)
                if d1(y1)==xx(y)
                    dd1(y1)=y;
                end
                if d2(y1)==xx(y)
                    dd2(y1)=y;
                end
            end
        end
        cpp=ccpoints(dd1',dd2',num,length(dd1),ds);
    end
    if isempty(cpp)~=1
        for t=1:size(cpp,2)
            n=n+1;
            site=cpp{t};
            cpp2{n}=xx(site);
            mr=[mr i];
        end
        tr=[tr num];
    end
end       
%function [err,maxdiff]=poletermerr(cpp2,mr,tr,g,f,dir,si,ni,pn,md)         
%计算极条件闭合差和限差= = = = = = = = = = = = = = = = = = = =
n=size(cpp2,2);
err=[];
maxdiff=[];
for i=1:n
    site=cpp2{i};
    m=size(site,2);
    w=1;
    w1=0;
    for j= 1:m-1
        [bet1,k1]=beta(mr(i),site(j),site(j+1));
        [bet2,k2]=beta(site(j),site(j+1),mr(i));
        w=w*sin(bet1)/sin(bet2);
        w1=w1+(cot(bet1))^2+(cot(bet2))^2;
    end
    err(i)=(w-1)*206265;
    maxdiff(i)=2*sqrt(2*w1)*md;
end        
%输出计算结果====================================================================
fprintf(fit2,'       极条件');
fprintf(fit2,'       中心点    环点     闭合差      限差\n');
fprintf(fit2,'= = = = = = = = = = = = = = = = = = = = = = = =\n');
for i=1:size(cpp2,2)
    site=cpp2{i};
    if abs(maxdiff(i))-abs(err(i))>=0
       fprintf(fit2,'  %5d %5d  %5d %5d %5d %5d %5d %5d',i,mr(i),site);
       fprintf(fit2,' %10.3f %10.3f\n',err(i),maxdiff(i));
    else
       fprintf(fit2,' * * %5d %5d  %5d %5d %5d %5d %5d %5d',i,mr(i),site);
       fprintf(fit2,' %10.3f %10.3f\n',err(i),maxdiff(i));
    end     
end
fprintf(fit2,'= = = = = = = = = = = = = = = = = = = = = = = =\n');
fclose(fit2);
open(strcat(pathname,net_name,c2_datafile));
return

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -