这个代码只读取了精密星历SP3文件第一颗卫星随不同时间的X,Y,Z,和2-9颗卫星的X坐标,如果需要其他数据,自行改进代码
%%
clc
clear
fid = fopen('ESA0OPSRAP_20222770000_01D_15M_ORB.SP3');%SP3文件
% read header
line = fgetl(fid);
%如果两字符串一样则strcmp返回值为1,否则返回0;
while ~(strcmp(line(34:37),'NONE'))
strcmp(line(34:37),'NONE');
line = fgetl(fid);
end
% read body
j = 1;
str='EOF';
line = fgetl(fid);
while 1
if (line(1:3)==str),
break,
end%判断line是不是字符串类型的,如果不是则退出循环
line = fgetl(fid);
for k=1:51%选取的是51颗卫星,实际情况看自己下载的数据
X(1,k)=str2double(line(6:18));
Y(1,k)=str2double(line(20:32));
Z(1,k)=str2double(line(34:46));
G(1,k)=str2double(line(50:60));
line = fgetl(fid);
end
%先读取10颗卫星试试
eph