matlab写函数进行坐标正反算,基于matlab的坐标正反算
《基于matlab的坐標(biāo)正反算》由會員分享,可在線閱讀,更多相關(guān)《基于matlab的坐標(biāo)正反算(6頁珍藏版)》請在人人文庫網(wǎng)上搜索。
1、基于 matlab 的坐標(biāo)正反算測量程序設(shè)計實驗報告實驗名稱 : 坐標(biāo)正反算實驗三坐標(biāo)正反算一、實驗?zāi)康木帉懽鴺?biāo)正反算程序 , 并對格式化文件數(shù)據(jù)進(jìn)行計算, 驗證程序。二、實驗內(nèi)容1、編寫坐標(biāo)正算程序1)建立以 xy_direct命名的函數(shù) , 函數(shù)輸入輸出格式為x2,y2 = xy_direct(x1,y1,distance, azimuth)度轉(zhuǎn)度分秒 : function dms= degree2dms(jiaodu)degree = fix(jiaodu);mimute = fix(jiaodu-degree)*60);second = (jiaodu-degree)*60-mimut。
2、e)*60;dms = degree+mimute/100+second/10000;度分秒轉(zhuǎn)度 :基于 matlab 的坐標(biāo)正反算 function degree = dms2degree(jiaodu) degree = fix(jiaodu); mimute = fix(jiaodu-degree)*100); second = (jiaodu-degree-mimute/100)*10000;degree = degree+mimute/60+second/3600;弧度轉(zhuǎn)度 : function dms=rad2dms(rad) rad=abs(rad); jiaodu=rad*18。
3、0 、0/pi; % l=fix(a) % b=(a-l)*60 、 0 % m=fix(b) % a=l+m/100 、0+(b-m)*0 、006 % if(rad % dms=-a; % else % dms=a; % end degree = fix(jiaodu); mimute = fix(jiaodu-degree)*60);基于 matlab 的坐標(biāo)正反算 second = (jiaodu-degree)*60-mimute)*60; dms = degree+mimute/100+second/10000; if(rad function x2,y2 = xy_direct(。
4、x1,y1,distance, azimuth) x2=x1+distance 、*cos(azimuth*pi/180);y2=y1+distance 、*sin(azimuth*pi/180);end2) 對文件 data1 、txt 中數(shù)據(jù)進(jìn)行坐標(biāo)正算 , 并將已知點與計算點坐標(biāo)按照格式存貯在文件 data2 、 txt 中,data1 、txt格式為 : x1y1距離方位角 (dd 、 mmss)data2 、txt格式為 :x1y1x2y2 =uigetfile; file=pathname,; data=importdata(file);基于 matlab 的坐標(biāo)正反算 %x1,y。
5、1=data 、data(:,1,2); azimuth=dms2degree(data 、 data(:,4); distance=data 、data(:,3); %x2,y2=xy_direct(x1,y1,distance,azimuth);x2,y2=xy_direct(data、data(:,1),data、data(:,2),distance,azimuth); =uiputfile; pathname_out,; fid=fopen(,wt); fprintf(fid,x1 y1 x2 y2n); fprintf(fid,%8、2f %8、2f %8、2f %8、2fn,dat。
6、a、data(:,1:2),x2,y2); fclose(all) ans =02、編寫坐標(biāo)反算程序1) 建立以 xy_inv 命名的函數(shù) , 函數(shù)輸入輸出格式為distance, azimuth = xy_inv(x1,y1, x2,y2) function distance, azimuth = xy_inv(x1,y1, x2,y2) delt_x=x2-x1; delt_y=y2-y1; m,x=size(delt_x);基于 matlab 的坐標(biāo)正反算 azimuth=zeros(0,m); for i=1:mazimuth_temp=atan2(abs(delt_y(i),abs(。
7、delt_x(i);if delt_x(i)0&delt_y(i)0azimuth(i)=azimuth_temp;elseif delt_x(i)0&delt_y(i)0azimuth(i)=pi-azimuth_temp;else delt_x(i) azimuth=rad2dms(azimuth) distance=sqrt(x2-x1)、2+(y2-y1) 、2); %fprintf(兩點間距離 :%8、 3f ; 方位角為 :%8、 3f,distance,azimuth);2) 對文件 data2 、txt 中數(shù)據(jù)進(jìn)行坐標(biāo)反算 , 并將計算結(jié)果按照格式存貯在文件data3 、txt。
8、中,Data3、txt格式為 : x1y1 x2y2距離方位角 (dd 、mmss) = uigetfile;基于 matlab 的坐標(biāo)正反算file = pathname, ;data=importdata(file); distance,azimuth =xy_inv(datadata(:,3),data、 data(:,4);、 data(:,1),data、data(:,2),data、 = uiputfile; = pathname_out, ; fid = fopen(,wt);fprintf(fid, x1y1x2y2距離方位角 (dd 、 mmss)n);fprintf(fid,%8、 2f%8 、 2f%8 、2f%8 、2f%8 、2f%8 、4fn,data、 data(:,1:4),distance,azimuth);fclose(all);3、可能用到的函數(shù)開根號 ,sqrt(x)sin(rad)、cos(rad) 、 atan2(y,x),find。
總結(jié)
以上是生活随笔為你收集整理的matlab写函数进行坐标正反算,基于matlab的坐标正反算的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 弹性布局----Flex
- 下一篇: 软考中级网络工程师知识目录