Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2010-05-26, 20:25   #1
luyihong2100
初级会员
 
注册日期: 2010-05-25
帖子: 1
声望力: 0
luyihong2100 正向着好的方向发展
默认 希望高手帮我看一下这个程序有什么问题,为什么运行不起来?

function kk=rddat1
global net ed dd sd dd1 pn x0 y0 m1 m2 m3 ms pp e d sid md g f dir ni si ma s t az
global pathname net_name s_datafile b_datafile;
x0=[];y0=[];e=[];d=[];sid=[];g=[];f=[];dir=[];si=[];ni=[];s=[];t=[];az=[];
pn=[];
if(isempty(pathname)||isempty(net_name))
[filename,pathname]=uigetfile('*.txt','Input filename');
i=find('.'==filename);
net_name=filename(1:i-1);
end
fit1=fopen(strcat(pathname,net_name,s_datafile),'rt');
if(fit1==-1)
msgbox('Input File or Path is not correct','Warning','warn');
return;
end
%open a file to read
fit2=fopen(strcat(pathname,net_name,b_datafile),'wt');
if(fit2==-1)
msgbox('Input File or Path is not correct','Warning','warn');
return;
end
net=fscanf(fit1,'%d',1);
fprintf(fit2,'%5d\n',net);
[a]=fscanf(fit1,'%d',3);
ed=a(1);dd=a(2);dd1=a(3);
fprintf(fit2,'%5d',ed,dd,dd1);
fprintf(fit2,'\n');
sd=ed+dd;
[pn]=fscanf(fit1,'%d',sd);
fprintf(fit2,'%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d\n',pn);
fprintf(fit2,'\n');
[a]=fscanf(fit1,'%f',2*ed);
for i=1:ed
x0(i)=a(2*i-1);
y0(i)=a(2*i);
fprintf(fit2,'%15.3f%15.3f\n',x0(i),y0(i));
end
fprint(fit2,'\n');
[a]=fscanf(fit1,'%d',3);
m1=a(1);m2=a(2);m3=a(3);
fprintf(fit2,'%5d%5d%5d\n',m1,m2,m3);
isid=0;
if(m1>0)
fprintf(fit2,'side\n');
[a]=fscanf(fit1,'%f',2);
ms=a(1);
pp=a(2);
fprintf(fit2,'%6.2F%6.2f\n',ms,pp);
[a]=fscanf(fit1,'%d%d%f',3*m1);
for i=1:m1
e(i)=a(3*i-2);d(i)=a(3*i-1);sid(i)=a(3*i);
fprintf(fit2,'%5d%5d%15.3f\n',e(i),d(i),sid(i));
end
[e,i1]=chkdat(sd,pn,e);
[d,i2]=chkdat(sd,pn,d);
i3=0;
for i=1:m1
if(e(i)==d(i))
i3=1;
fprintf(fit2,'**%5d%5d%5d**\n',i,e(i),d(i));
end
fprintf(fit2,'%5d%5d%15.3f\n',e(i),d(i),sid(i));
end
isid=i1+i2+i3;
end
idir=0;
if(m2>0)
fprintf(fit2,'direction\n');
md=fscanf(fit1,'%f',1);
fprintf(fit2,'%6.2f\n',md);
[a]=fscanf(fit1,'%d%d%f',3*m2);
for i=1:m2
n1(i)=a(3*i-2);
n2(i)=a(3*i-1);
unk(i)=a(3*i);
fprintf(fit2,'%5d%5d%15.3f\n',n1(i),n2(i),unk(i));
end
[n1,i1]=chkdat(sd,pn,n1);
[n2,i2]=chkdat(sd,pn,n2);
i3=0;
for j=1:m2
if(n1(j)==n2(j))
i3=1;
fprintf(fit2,'**%5d%5d%5d**\n',j,n1(j),n2(j));
end
end
ik=1;
si(1)=1;
for i=1:sd
ii=0;
for j=1:m2
if(n1(j)==i)
ii=ii+1;
g(ik)=n1(j);
f(ik)=n2(j);
dir(ik)=unk(j);
fprintf(fit2,'%5d%5d%15.5f\n',g(ik),f(ik),dir(ik));
dir(ik)=dms_rad(dir(ik));
ik=ik+1;
end
end
ni(i)=ii;
si(i+1)=si(i)+ni(i);
end
fprintf(fit2,'%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d\n',ni);
fprintf(fit2,'\n');
fprintf(fit2,'%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d%5d\n',si);
fprintf(fit2,'\n');
idir=i1+i2+i3;
end
iaz=0;
if(m3>0)
fprintf(fit2,'Azimut\n');
ma=fscanf(fit1,'%f',1);
fprintf(fit2,'%6.2f\n',ma);
[a]=fscanf(fit1,'%d%d%f',3*m3);
for i=1:m3
s(i)=a(3*i-2);
t(i)=a(3*i-1);
az(i)=a(3*i);
fprintf(fit2,'%5d%5d%15.3f\n',s(i),t(i),az(i));
end
[s,i1]=chkdat(sd,pn,s);
[t,i2]=chkdat(sd,pn,t);
i3=0;
for j=1:m3
if(s(j)==t(j))
i3=1;
fprintf(fit2,'**%5d%5d%5d**\n',j,s(j),t(j));
end
az(i)=dms_rad(az(i));
end
iaz=i1+i2+i3;
end
kk=isid+idir+iaz;
if(kk>0)
msgbox('Error by function rddat1','Warning','warn');
return;
end
fclose('all');
open(strcat(pathname,net_name,b_datafile));
return
数据如下:
3
2 3 20
309 307 312 312 311
3307245.025 40573116.485 3308277.151 40570795.625
307 312 2542.152
307 310 1731.358
309 311 1326.311
310 312 1673.824
309 312 1630.460
311 312 1826.488
1.2
310 307 47.095
310 312 143.440
312 309 0.000
312 311 44.403
312 310 246.123
312 307 288.470
311 312 158.365
311 309 218.251
309 311 0.000
309 312 75.311
309 307 146.524
307 309 157.442
307 312 195.095
307 310 236.006
luyihong2100 当前离线   回复时引用此帖
 

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 15:04


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.