使用fgetl函数fid=fopen在循环外,lind=fgetl(fid)在循环里,运行就会出现“错误使用fgets文件标识符无效,使用fopen生成有效的文件标识符”
fid = fopen(infile);
for i= 1:3 %length矩阵行数
line=fgetl(fid);
az=str2num(line(5:14));
el=str2num(line(15:19));
curprn = str2num(line(2:4));
if el == 90
break
end
R=1;
r = R *(1- el/90);%根据仰角确定卫星所在圆的半径
x = r * sin(az * pi / 180);%根据方位角求出卫星具体坐标
y = sqrt(r*r -x *x);
if az >0 && az < 180
x = abs(x);%abs()绝对值
else
x = -abs(x);
end
if az > 90 && az <= 270
y = - abs(y);
else
y = abs(y);
end
% for k = 1:length(x)
%
% addpoints(h,x(k),y(k));
%
% drawnow
% end
%
ch = plot(x,y,'Marker',markers{curprn},'LineStyle','none');
hold on;
status = fclose(fid);
hs = [hs;ch];
legendstr = [legendstr ; sprintf('C%02d', curprn)];%sprintf功能: 送格式化输出到字符串中,C%02d
end
fopen获取到的fid不是有效的