我喜欢在Matlab中使用此file来阅读石油平台的位置。我从here获取了该文件。 “Platform.gen”看起来像这样:
Id Lat Lon
1 0.100000000000000D + 02 0.890000000000000D + 02
2 -0.941577040000000D + 02 0.294488400000000D + 02
3 -0.941241560000000D + 02 0.292748680000000D + 02
4 -0.941225830000000D + 02 0.292251370000000D + 02
5 -0.943647730000000D + 02 0.292845940000000D + 02
我使用以下方法将其读入Matlab:
[id lat lon] = textread('platform.gen','%s%s %S');
但是,我对如何解码lat / lon值感到迷茫...帮助?
答案 0 :(得分:2)
我建议改为使用转换说明符%f
来读取值。这将自动处理双精度浮点数的格式。字符D
只是展示scientific notation的另一种方式,因此0.10D+02
是10
的双精度:
>> [id,lat,lon] = textread('platform.gen','%u %f %f','headerlines',1)
id =
1
2
3
4
5
lat =
10.0000
-94.1577
-94.1242
-94.1226
-94.3648
lon =
89.0000
29.4488
29.2749
29.2251
29.2846
此外,函数TEXTREAD将在未来的MATLAB版本中删除,转而使用TEXTSCAN,您可以这样使用:
>> fid = fopen('platform.gen','r');
>> data = textscan(fid,'%f %f %f','HeaderLines',1,'CollectOutput',true);
>> fclose(fid);
>> data{1}
ans =
1.0000 10.0000 89.0000
2.0000 -94.1577 29.4488
3.0000 -94.1242 29.2749
4.0000 -94.1226 29.2251
5.0000 -94.3648 29.2846