2011-03-21 39 views
1

我喜歡在Matlab中使用file來讀取石油平臺的位置。我從here獲得該文件。 「Platform.gen」 看起來像這樣:Matlab:在閱讀時丟失奇怪的緯度格式

標識緯度經度
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');

但是,我失去了如何解碼緯度/經度值...幫助嗎?

回答

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 
+0

+1,正是我所期待的。一如既往,gnovice,你是最好的 – Elpezmuerto 2011-03-21 16:32:43