下面Matlab的一段代码哪里出错了呢?
[fname,pathname]=uigetfile('*txt','打开文件');i=find('.'==fname);filename=fname(1:i-1);hz...
[fname,pathname]=uigetfile('*txt','打开文件');
i=find('.'==fname);
filename=fname(1:i-1);
hzname=fname(i:length(fname));
str1=strcat(pathname,fname);
fit1=fopen(str1,'r');
aa=fscanf(fit1,'%d',2);
ed=aa(1);
dd=aa(2);
sd=ed+dd;
aa=fscanf(fit1,'%d',sd);
pn=aa';
aa=fscanf(fit1,'%f',ed);
Hknown=aa;
aa=fscanf(fit1,'%d',2);
cdnb=aa(1);kw=aa(2);
aa=fscanf(fit1,'%f',[4,3]);
cddata=aa';
fclose(fit1);
dh=cddata(:,4);
sdh=sum(dh);
w=Hknown(2)-Hknown(1)-sdh;
ss=cddata(:,3);
ssm=sum(ss);
HH=[ ];
if abs(w)>kw*sqrt(ssm)
msgbox('闭合差超限,退出');exit
else
V=w/ssm*ss;
dhp=dh+V;
prevh=Hknown(1);
for i=1:dd;
Hi=prevh+dhp(i);
prevh=Hi;
HH=[HH,Hi];
end
HH=HH';
end
这是读入的数据
这是运行的结果提示
感觉是那个HH的矩阵的定义和赋值不正确,但我自己不知道该如何修改,请大神们指正
这是个简单的附合水准路线的平差代码,读入数据的各行的意思是
已知点个数 未知点个数
点号(已知点在前,未知点在后)
已知点高程(按已知点序号顺序排列)
测段数 限差比例
点号1 点号2 测段长度(公里) 测段高差(由点号1到点号2的高差) 展开
i=find('.'==fname);
filename=fname(1:i-1);
hzname=fname(i:length(fname));
str1=strcat(pathname,fname);
fit1=fopen(str1,'r');
aa=fscanf(fit1,'%d',2);
ed=aa(1);
dd=aa(2);
sd=ed+dd;
aa=fscanf(fit1,'%d',sd);
pn=aa';
aa=fscanf(fit1,'%f',ed);
Hknown=aa;
aa=fscanf(fit1,'%d',2);
cdnb=aa(1);kw=aa(2);
aa=fscanf(fit1,'%f',[4,3]);
cddata=aa';
fclose(fit1);
dh=cddata(:,4);
sdh=sum(dh);
w=Hknown(2)-Hknown(1)-sdh;
ss=cddata(:,3);
ssm=sum(ss);
HH=[ ];
if abs(w)>kw*sqrt(ssm)
msgbox('闭合差超限,退出');exit
else
V=w/ssm*ss;
dhp=dh+V;
prevh=Hknown(1);
for i=1:dd;
Hi=prevh+dhp(i);
prevh=Hi;
HH=[HH,Hi];
end
HH=HH';
end
这是读入的数据
这是运行的结果提示
感觉是那个HH的矩阵的定义和赋值不正确,但我自己不知道该如何修改,请大神们指正
这是个简单的附合水准路线的平差代码,读入数据的各行的意思是
已知点个数 未知点个数
点号(已知点在前,未知点在后)
已知点高程(按已知点序号顺序排列)
测段数 限差比例
点号1 点号2 测段长度(公里) 测段高差(由点号1到点号2的高差) 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询