matlab程序闭合导线网程序,【求助】闭合导线简易平差Matlab代码需要大神帮忙
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
%觀測數據的輸入
n=input('請輸入閉合導線的點數:');
for i=1:n %按邊數進行循環
a=num2str(i); %數字轉換為字符串
string1=(char(('請輸入第')',a,('條導線的邊長:')'))';
bian(i)=input(string1);
b=num2str(i);
string2=(char(('請輸入第')',b,('個轉折角:')'))';
jiao1=input(string2,'s');
c=jiao1;
du=str2num(c(1:3));
fen=str2num(c(4:5));
miao=str2num(c(6:7));
jiao2(i)=du+fen/60+miao/3600;
end
%起算數據的輸入
x=input('請輸入起始已知點x的坐標:');
y=input('請輸入起始已知點y的坐標:');
string3=(char('請輸入起始已知方向的起算方位角:'));
fwj1=input(string3,'s');
c=fwj1;
du=str2num(c(1:3));
fen=str2num(c(4:5));
miao=str2num(c(6:7));
fwj2=du+fen/60+miao/3600;
%角度閉合差的計算
fb=sum(jiao2)-(n-2)*180;
for i=1:n
v(i)=(-1)*fb/n;
end
%真方位角計算
for i=1:n
if i==1
fwjz(1)=fwj2+jiao2(1)+v(1)-180;
end
if i>1
fwjz(i)=fwjz(i-1)+jiao2(i)+v(i)-180;
end
if fwjz(i)>0
fwjz1(i)=fwjz(i);
end
if fwjz(i)<0
fwjz1(i)=fwjz(i)+360;
end
end
%坐標閉合差計算
xzq=cosd(fwj2)*bian(1);
yzq=sind(fwj2)*bian(1);
for i=1:(n-1)
xz(i)=cosd(fwjz1(i))*bian(i+1);
yz(i)=sind(fwjz1(i))*bian(i+1);
end
fx=xzq+sum(xz);
fy=yzq+sum(yz);
fs=sqrt(fx^2+fy^2);
k=fs/sum(bian);
%坐標計算
for i=1:n
vx=(-1)*fx/sum(bian)*bian;
vy=(-1)*fy/sum(bian)*bian;
end
for i=1:n
if i==1
X(1)=x+xzq+vx(1);
Y(1)=y+yzq+vy(1);
end
if i>1
X(i)=X(i-1)+xz(i-1)+vx(i);
Y(i)=Y(i-1)+yz(i-1)+vy(i);
end
end
總結
以上是生活随笔為你收集整理的matlab程序闭合导线网程序,【求助】闭合导线简易平差Matlab代码需要大神帮忙的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 事业单位计算机技术岗位中级职称,事业单位
- 下一篇: java 运动控制,S7-1500T连接