matlab fgetl函数读取数据时出错

使用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不是有效的