MATLAB实验数据
- 格式:doc
- 大小:126.00 KB
- 文档页数:12
function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)mode1=get(handles.radiobutton1,'value');mode2=get(handles.radiobutton2,'value');if mode1==1set(handles.text5,'Visible','off');set(handles.edit5,'Visible','off');elseset(handles.text3,'Visible','off');set(handles.edit3,'Visible','off');set(handles.text4,'Visible','off');set(handles.edit4,'Visible','off');end[filename,pathname]=uigetfile(...{'*.txt;*.xls','data Files(*.txt,*.xls)'},...'pick a file');if(isempty(pathname))return;endfilepath=strcat(pathname,filename);mode=get(handles.radiobutton2,'value');O=get(handles.popupmenu2,'value');switch Ocase 1[XB,YB,azi1,Ang,Dis,Raw,Raw1]=FhDxReadData1(filepath,mode);handles.XB=XB;handles.YB=YB;handles.azi1=azi1;handles.Ang=Ang;handles.Dis=Dis;handles.Raw=Raw;handles.Raw1=Raw1;pts=strcat(Raw,'--',num2str(Ang));set(handles.listbox1,'string',pts);n=length(Dis);for i=1:ndts(i)=strcat(Raw(i),Raw(i+1));enddits=strcat(dts','--',num2str(Dis));set(handles.listbox2,'string',dits);fwj1=rad_mds(azi1);set(handles.edit5,'string',num2str(fwj1));set(handles.edit1,'string',num2str(XB));set(handles.edit2,'string',num2str(YB));guidata(hObject,handles)case 2set(handles.text3,'Visible','on');set(handles.edit3,'Visible','on');set(handles.text4,'Visible','on');set(handles.edit4,'Visible','on');[XB,YB,azi1,XC,YC,azi2,Ang,Dis,Raw]=FhDxReadData2(filepath,mode);handles.XB=XB;handles.YB=YB;handles.XC=XC;handles.YC=YC;handles.azi1=azi1;handles.azi2=azi2;handles.Ang=Ang;handles.Dis=Dis;handles.Raw=Raw;pts=strcat(Raw,'--',num2str(Ang));set(handles.listbox1,'string',pts);n=length(Dis);for i=1:ndts(i)=strcat(Raw(i),Raw(i+1));enddits=strcat(dts','--',num2str(Dis));set(handles.listbox2,'string',dits);fwj1=rad_mds(azi1);fwj2=rad_mds(azi2);set(handles.edit5,'string',num2str(fwj1));set(handles.edit18,'string',num2str(fwj2));set(handles.edit1,'string',num2str(XB));set(handles.edit2,'string',num2str(YB));set(handles.edit3,'string',num2str(XC));set(handles.edit4,'string',num2str(YC));guidata(hObject,handles)case 3[XB,YB,azi1,Ang,Dis,Raw,Raw1]=FhDxReadData3(filepath,mode);handles.XB=XB;handles.YB=YB;handles.azi1=azi1;handles.Ang=Ang;handles.Dis=Dis;handles.Raw=Raw;handles.Raw1=Raw1;pts=strcat(Raw,'--',num2str(Ang));set(handles.listbox1,'string',pts);set(handles.listbox4,'string',pts);n=length(Dis);for i=1:ndts(i)=strcat(Raw(i),Raw(i+1));enddits=strcat(dts','--',num2str(Dis));set(handles.listbox2,'string',dits);set(handles.listbox5,'string',dits);fwj1=rad_mds(azi1);set(handles.edit5,'string',num2str(fwj1));set(handles.edit1,'string',num2str(XB));set(handles.edit2,'string',num2str(YB));guidata(hObject,handles)endfunction pushbutton3_Callback(hObject, eventdata, handles)% hObject handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) jiao=handles.Ang;n=length(jiao);excel=actxserver('Excel.Application');set(excel,'Visible',1);wkbs=excel.Workbooks;wbk=invoke(wkbs,'Add');Actsh=excel.Activesheet;A=['导线平差成果报表'];actshrng=get(Actsh,'Range','A1','F1');set(actshrng,'MergeCell',4);set(actshrng,'HorizontalAlignment',3);set(actshrng,'Value',A);actshrng=get(Actsh,'Range','A2','A2');set(actshrng,'Value','点名');ptname=handles.Raw;for i=1:n+2if i==1actshrng=get(Actsh,'Range','A3','A3');set(actshrng,'Value','后视定向点');elseif i<n+2R1=strcat('A',num2str(i+2));actshrng=get(Actsh,'Range',R1);set(actshrng,'Value',ptname(i-1));elseR1=strcat('A',num2str(i+2));actshrng=get(Actsh,'Range',R1);set(actshrng,'Value','前视定向点');endendR=strcat('F',num2str(n+5));actshrng=get(Actsh,'Range','A2',R);set(actshrng,'HorizontalAlignment',2); actshrng=get(Actsh,'Range','B2','B2');set(actshrng,'Value','角度');for i=1:nR1=strcat('B',num2str(i+3));actshrng=get(Actsh,'Range',R1);set(actshrng,'Value',num2str(jiao(i))); endactshrng=get(Actsh,'Range','C2','C2');set(actshrng,'Value','距离');dts=handles.Dis;m=length(dts);for i=1:mR1=strcat('C',num2str(i+4));actshrng=get(Actsh,'Range',R1);set(actshrng,'Value',num2str(dts(i)));endactshrng=get(Actsh,'Range','D2','D2');set(actshrng,'Value','方位角');fwj=handles.fwj;fwj=rad_mds(fwj);m=length(fwj);azi1=rad_mds(handles.azi1);azi2=rad_mds(handles.azi2);for i=1:m+1if i==1actshrng=get(Actsh,'Range','D4','D4');set(actshrng,'Value',num2str(azi1));elseif i<m+1R1=strcat('D',num2str(i+3));actshrng=get(Actsh,'Range',R1);set(actshrng,'Value',num2str(fwj(i)));elseR1=strcat('D',num2str(i+3));actshrng=get(Actsh,'Range',R1);jh=strcat(num2str(azi2),'检核');set(actshrng,'Value',jh);endendactshrng=get(Actsh,'Range','E2','E2');set(actshrng,'Value','坐标X');actshrng=get(Actsh,'Range','F2','F2');set(actshrng,'Value','坐标Y');x=handles.xx;y=handles.yy;m=length(x);for i=1:mR1=strcat('E',num2str(i+3));actshrng=get(Actsh,'Range',R1);set(actshrng,'Value',num2str(x(i)));R1=strcat('F',num2str(i+3));actshrng=get(Actsh,'Range',R1);set(actshrng,'Value',num2str(y(i)));endActsh.Range('A1:F1').ColumnWidth=[16];R=strcat('A2:','F',num2str(m+7));Actsh.Range(R).Borders.Item(3).Linestyle=1; Actsh.Range(R).Borders.Item(2).Linestyle=1;R1=strcat('A',num2str(m+5),':','F',num2str(m+5)); Actsh.Range(R1).MergeCells=1;Actsh.Range(R1).Value='精度指标';Actsh.Range(R1).HorizontalAlignment=3;R1=strcat('A',num2str(m+6));xc=get(handles.edit14,'string');xcb=get(handles.edit15,'string');actshrng=get(Actsh,'Range',R1);set(actshrng,'Value','角度闭合差(秒):');R1=strcat('B',num2str(m+6));actshrng=get(Actsh,'Range',R1);set(actshrng,'Value',xc);R1=strcat('A',num2str(m+7));actshrng=get(Actsh,'Range',R1);set(actshrng,'Value','限差(秒):');xcc=get(handles.edit16,'string');R1=strcat('B',num2str(m+7));actshrng=get(Actsh,'Range',R1);set(actshrng,'Value',xcc);R1=strcat('C',num2str(m+6));actshrng=get(Actsh,'Range',R1);set(actshrng,'Value','全长相对闭合差:');R1=strcat('D',num2str(m+6));actshrng=get(Actsh,'Range',R1);set(actshrng,'Value',xcb);R1=strcat('E',num2str(m+6));actshrng=get(Actsh,'Range',R1);set(actshrng,'Value','坐标增量fx(mm)');R1=strcat('F',num2str(m+6));actshrng=get(Actsh,'Range',R1);set(actshrng,'Value',num2str(handles.fx*1000)); R1=strcat('E',num2str(m+7));actshrng=get(Actsh,'Range',R1);set(actshrng,'Value','坐标增量fy(mm)');R1=strcat('F',num2str(m+7));actshrng=get(Actsh,'Range',R1);set(actshrng,'Value',num2str(handles.fy*1000)); R1=strcat('C',num2str(m+7));actshrng=get(Actsh,'Range',R1);set(actshrng,'Value','限差(秒):');xxcc=get(handles.edit11,'string');R1=strcat('D',num2str(m+7));actshrng=get(Actsh,'Range',R1);set(actshrng,'Value',xxcc);R=strcat('A',num2str(m+8),':','F',num2str(m+8));Actsh.Range(R).Borders.Item(3).Linestyle=1;function pushbutton2_Callback(hObject, eventdata, handles)% hObject handle to pushbutton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) O=get(handles.popupmenu2,'value');switch Ocase 1XB=handles.XB;YB=handles.YB;azi1=handles.azi1;Ang=handles.Ang;Dis=handles.Dis;Raw=handles.Raw;Raw1=handles.Raw1;n=length(Ang);[x,y,k,fbx,fx,fy,fwj]=TranverseFH1(XB,YB,azi1,Ang,Dis);set(handles.edit14,'string',num2str(fbx));set(handles.edit15,'string',strcat('1/',num2str(k)));m=get(handles.popupmenu1,'value');switch mcase 1set(handles.edit11,'string','1/60000');xc=60*sqrt(n-1);sxc=num2str(xc);set(handles.edit16,'string',sxc);case 2set(handles.edit11,'string','1/40000');xc=40*sqrt(n-1);sxc=num2str(xc);set(handles.edit16,'string',sxc);case 3set(handles.edit11,'string','1/40000');xc=20*sqrt(n-1);sxc=num2str(xc);set(handles.edit16,'string',sxc);case 4set(handles.edit11,'string','1/10000');xc=10*sqrt(n-1);sxc=num2str(xc);setset(handles.edit16,'string',sxc);case 5set(handles.edit11,'string','1/6000');xc=5*sqrt(n-1);sxc=num2str(xc);set(handles.edit16,'string',sxc);case 6set(handles.edit11,'string','1/2000');xc=1*sqrt(n-1);sxc=num2str(xc);set(handles.edit16,'string',sxc);endsubplot(handles.axes1);yy=[500.000 YB y];xx=[770.000 XB x];xy=strcat(Raw1,':',num2str(xx'),'--',num2str(yy')); set(handles.listbox3,'string',xy);plot(yy,xx,'-mo');text(yy,xx,Raw1);handles.yy=yy;handles.xx=xx;handles.fx=fx;handles.fy=fy;handles.fwj=fwj;guidata(hObject,handles);case 2XB=handles.XB;YB=handles.YB;XC=handles.XC;YC=handles.YC;azi1=handles.azi1;azi2=handles.azi2;Ang=handles.Ang;Dis=handles.Dis;Raw=handles.Raw;n=length(Ang);[x,y,k,fbx,fx,fy,fwj]=TranverseFH2(XB,YB,azi1,XC,YC,azi2,Ang,Dis);set(handles.edit14,'string',num2str(fbx));set(handles.edit15,'string',strcat('1/',num2str(k)));t=get(handles.popupmenu1,'value');switch tcase 1set(handles.edit11,'string','1/60000');xc=3*sqrt(n);sxc=num2str(xc);set(handles.edit16,'string',sxc);case 2set(handles.edit11,'string','1/40000');xc=5*sqrt(n);sxc=num2str(xc);set(handles.edit16,'string',sxc);case 3set(handles.edit11,'string','1/40000');xc=10*sqrt(n);sxc=num2str(xc);set(handles.edit16,'string',sxc);case 4set(handles.edit11,'string','1/10000');xc=16*sqrt(n);sxc=num2str(xc);setset(handles.edit16,'string',sxc);case 5set(handles.edit11,'string','1/6000');xc=24*sqrt(n);sxc=num2str(xc);set(handles.edit16,'string',sxc);case 6set(handles.edit11,'string','1/2000');xc=40*sqrt(n);sxc=num2str(xc);set(handles.edit16,'string',sxc);endsubplot(handles.axes1);yy=[YB y];xx=[XB x]xy=strcat(Raw,':',num2str(xx'),'--',num2str(yy'));set(handles.listbox3,'string',xy);plot(yy,xx,'-mo');text(yy,xx,Raw);handles.yy=yy;handles.xx=xx;handles.fx=fx;handles.fy=fy;handles.fwj=fwj;guidata(hObject,handles);case 3XB=handles.XB;YB=handles.YB;azi1=handles.azi1;Ang=handles.Ang;Dis=handles.Dis;Raw=handles.Raw;Raw1=handles.Raw1;n=length(Ang);[x,y,fx,fy,fwj]=TranverseFH3(XB,YB,azi1,Ang,Dis);subplot(handles.axes1);yy=[1000.000 YB y];xx=[700.000 XB x];xy=strcat(Raw1,':',num2str(xx'),'--',num2str(yy'));set(handles.listbox3,'string',xy);plot(yy,xx,'-mo');text(yy,xx,Raw1);handles.yy=yy;handles.xx=xx;handles.fx=fx;handles.fy=fy;handles.fwj=fwj;guidata(hObject,handles);endfunction [ stat,X,V,dx ] = readsurvey()%UNTITLED 此处显示有关此函数的摘要% 此处显示详细说明global pathname filename netname;global yzd;if(isempty(pathname)||isempty(netname))[filename,pathname]=uigetfile(...{'*.txt;*.xls','data Files(*.txt,*.xls)'},...'pick a file');if(isempty(pathname))return;endi=find('.'==filename);netname=filename(1:i-1);endyzd_filepath=strcat(pathname,netname,'.txt');hc_filepath=strcat(pathname,netname,'.dat');yzd=dlmread(yzd_filepath);yzd_n=yzd(:,1);yzd_count=length(yzd_n);yzd_h=yzd(:,2); %取出已知高程点h0=dlmread(hc_filepath);cd_count=size(h0,1);qdh=h0(:,1);zdh=h0(:,2);all_dh=[qdh;zdh];wzd_count=max(all_dh)-yzd_count;hh(1:max(all_dh),1)=0;hh(1:yzd_count)=yzd_h;gc=h0(:,3);d=h0(:,4);ie=0;B(cd_count,wzd_count)=0;L(cd_count,1)=0;while(L==0)for k=1:cd_countif((hh(qdh(k))==0) && hh(zdh(k))~=0)hh(qdh(k))=hh(zdh(k))-gc(k);ie=ie+1;endif(hh(qdh(k))~=0 && hh(zdh(k))==0)hh(zdh(k))=hh(qdh(k))+gc(k);ie=ie+1;endendif(ie==wzd_count)break;endendfor k=1:cd_countii=qdh(k)-yzd_count;jj=zdh(k)-yzd_count;if(ii>0)B(k,ii)=-1;endif(jj>0)B(k,jj)=1;endL(k)=(hh(zdh(k))-hh(qdh(k))-gc(k)); endL=-L;s=1./d;P=diag(s);N=B'*P*B;W=B'*P*L;x=N\W;r=cd_count-wzd_count;V=(B*x-L).*1000;d0=sqrt(V'*P*V/r);dx=d0*sqrt(diag(N));hx=hh(yzd_count+1:end,:);X=hx+x;stat.yzd=yzd_count;stat.wzd=wzd_count;stat.d0=d0;end。