下面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的高差)
展开
 我来答
射手座lll
2015-01-13 · TA获得超过820个赞
知道小有建树答主
回答量:688
采纳率:88%
帮助的人:410万
展开全部
它的意思是说 Hknow(1) HH Hknow(2) 这三个数组的维度对不上,应该是行数不一样。这是想把三个数组按行合并在一起,但是他们的行数不一样,所以出错了。而且错误应该不是在你粘贴的这段代码里,因为报错的部分在你粘贴的部分找不到。你这个好像是GUI吧。
你这个是GUI里pushbutton1的回调函数里的错误的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式