我正在使用Matlab R2015b并且我一直在遇到一个问题,我的索引认为它对于矩阵维度来说太大了。这是我的代码:
fid = fopen('GPS.dat');
m = 0;
r = 6371;
while feof(fid) == 0
m = m + 1;
GPS = fgetl(fid);
[x,GPS2] = strtok(GPS,' ');
[y,GPS3] = strtok(GPS2,' ');
[z,GPS4] = strtok(GPS3,' ');
[GPSweek,GPS5] = strtok(GPS4,' ');
[GPSsecondintoweek] = strtok(GPS5,' ');
end
for i = 1:m
if x(i) == 0 && y(i) == 0
lon(i) = 0;
elseif x(i) ~= 0
lon(i) = atand(y(i)/x(i));
end
if z(i) ~= 0
lat(i) = asind((z(i))/r);
else
lat(i) = 0;
end
end
代码应该从.dat文件中获取笛卡尔坐标,并将它们转换为经度和纬度。代码一直工作到for循环的第二次迭代,当i = 2.这让我感到困惑,因为dat文件有6个向量,所以m = 6,所以它应该能够达到6。
感谢您的帮助。