Я бы предложил вместо этого использовать спецификатор преобразования %f
для чтения значений. Это автоматически обработает формат чисел с плавающей запятой двойной точности. Символ D
- это просто еще один способ отображения научной записи , поэтому 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