资源简介
这是本人制作的导线网平差matlab程序,压缩包里有程序,计算数据和最终结果,程序中包含一些必要的注释。

代码片段和文件信息
function plannet()
% a:已知点个数 b:未知点个数 ab:点数 D:点号
% X:X坐标 Y:Y坐标 bc_count:边长观测个数 fx_count:方向观测个数
% fw_count:方位角观测个数 bcQ:边长起点号 bcZ:边长终点号 s:边长观测值
% fxzwc:方向观测中误差 fxQ:方向起点号 fxZ:方向终点号 jd:方向观测角度
% jszb_x近似坐标x jszb_x近似坐标y
%读取数据文件
[filenamefilepath]=uigetfile(‘*.txt‘‘选择数据:‘);
name=[filepath filename];
fid=fopen(name‘rt‘);
if(fid==-1)
disp(‘文件未打开,请重试!‘);
return;
end
a=fscanf(fid‘%f‘1);
b=fscanf(fid‘%f‘1);
ab=a+b;
for i=1:ab
D(i)=fscanf(fid‘%f‘1);
end
for i=1:a
X(i)=fscanf(fid‘%f‘1);
Y(i)=fscanf(fid‘%f‘1);
end
bc_count=fscanf(fid‘%f‘1);
fx_count=fscanf(fid‘%f‘1);
fw_count=fscanf(fid‘%f‘1);
for j=1:bc_count
bcQ(j)=fscanf(fid‘%f‘1);
bcZ(j)=fscanf(fid‘%f‘1);
s(j)=fscanf(fid‘%f‘1);
end
fxzwc=fscanf(fid‘%f‘1);
for j=1:fx_count
fxQ(j)=fscanf(fid‘%f‘1);
fxZ(j)=fscanf(fid‘%f‘1);
jd(j)=fscanf(fid‘%f‘1);
end
for j=1:ab
jszb_x(j)=fscanf(fid‘%f‘1);
jszb_y(j)=fscanf(fid‘%f‘1);
end
fclose(fid);
%将角度转换成弧度
du=fix(jd);
f=(jd-du).*100;
fen=fix(f);
miao=(f-fen).*100;
fen=fen./60;
miao=miao./3600;
r=(du+fen+miao)./180;
jd=r.*pi;
%%%%%%%赋初值为零
Bx(bc_countb*2)=0;
Lx(bc_count1)=0;
Bf(fx_countb*2)=0;
Lf(fx_count1)=0;
sumx=1;
sumxx=0;
while (sumx>10^-6&&sumxx<100) %叠代
% Bx=zeros(bc_count2*ab);
% Lx=zeros(bc_count1);
Ps=zeros(bc_count1);%边长的权
for ii=1:bc_count
for i=1:ab
if D(i)==bcQ(ii)
n1=i;
end
end
for i=1:ab
if D(i)==bcZ(ii)
n2=i;
end
end
x1=jszb_x(n1);
y1=jszb_y(n1);
x2=jszb_x(n2);
y2=jszb_y(n2);
dx=x2-x1;
dy=y2-y1;
Sij=sqrt(dx^2+dy^2);
bij=-dy./Sij;
aij=-dx./Sij;
if n1<=a&&n2>a
Bx(iin2*2-1)=-aij;
Bx(iin2*2)=-bij;
elseif n1>a&&n2<=a
Bx(iin1*2-1)=aij;
Bx(iin1*2)=-bij;
elseif n1>a&&n2>a
Bx(iin1*2-1)=aij;
Bx(iin1*2)=bij;
Bx(iin2*2-1)=-aij;
Bx(iin2*2)=-bij;
end
Lx(ii)=s(ii)-Sij;
end
Bx=Bx(:a*2+1:end);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%方向
for ii=1:fx_count
for i=1:ab
if D(i)==fxQ(ii)
n1=i;
end
end
for i=1:ab
if D(i)==fxZ(ii)
n2=i;
end
end
x1=jszb_x(n1);
y1=jszb_y(n1);
x2=jszb_x(n2);
y2=jszb_y(n2);
dx=x2-x1;
dy=y2-y1;
Sij=sqrt(dx^2+dy^2);
bij=-206265*dx./Sij^2;
aij=-206265*dy./Sij^2;
if n1<=a&&n2>a
Bf(iin2*2-1)=-aij;
Bf(iin2*2)=-bij;
elseif n1>a&&n2<=a
Bf(iin1*2-1)=aij;
Bf(iin1*2)=-bij;
elseif n1>a&&n2>a
Bf(iin1*2-1)=aij;
Bf(iin1*2)=bij;
Bf(iin2*2-1)=-aij;
Bf(iin2*2)=-bij;
end
%近似方位角
fwj(ii)=atan(abs(dy/dx));
if(dx>0&&dy>0)
fwj(ii)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4448 2018-05-23 12:50 plannet.m
文件 160 2018-05-23 12:50 result.txt
文件 568 2018-05-18 09:39 sj.txt
- 上一篇:基于simuli
nk的储能逆变器VF控制仿真 - 下一篇:matlab图像融合程序
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论