matlab导线平差程序,【求助】闭合导线简易平差Matlab代码需要大神帮忙
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
%觀測(cè)數(shù)據(jù)的輸入
n=input('請(qǐng)輸入閉合導(dǎo)線(xiàn)的點(diǎn)數(shù):');
for i=1:n %按邊數(shù)進(jìn)行循環(huán)
a=num2str(i); %數(shù)字轉(zhuǎn)換為字符串
string1=(char(('請(qǐng)輸入第')',a,('條導(dǎo)線(xiàn)的邊長(zhǎng):')'))';
bian(i)=input(string1);
b=num2str(i);
string2=(char(('請(qǐng)輸入第')',b,('個(gè)轉(zhuǎn)折角:')'))';
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
%起算數(shù)據(jù)的輸入
x=input('請(qǐng)輸入起始已知點(diǎn)x的坐標(biāo):');
y=input('請(qǐng)輸入起始已知點(diǎn)y的坐標(biāo):');
string3=(char('請(qǐng)輸入起始已知方向的起算方位角:'));
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;
%角度閉合差的計(jì)算
fb=sum(jiao2)-(n-2)*180;
for i=1:n
v(i)=(-1)*fb/n;
end
%真方位角計(jì)算
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
%坐標(biāo)閉合差計(jì)算
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);
%坐標(biāo)計(jì)算
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
總結(jié)
以上是生活随笔為你收集整理的matlab导线平差程序,【求助】闭合导线简易平差Matlab代码需要大神帮忙的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 帕累托最优和纳什均衡例子
- 下一篇: php span标签什么意思,htmls