Fortran90 Array читает пустые значения как ноль - PullRequest
2 голосов
/ 18 июля 2011

Я читаю данные из внешнего текстового файла (30 строк, 7 столбцов), каждая строка разделена ",". У меня пропущены значения, представленные как ",,". Когда я читаю данные в двумерный массив, отсутствующее значение заменяется на 0,00, но у меня тоже есть значение 0,00 в данных. Когда я вычисляю среднее значение, показывается счетчик (количество элементов (n)) - (количество пропущенных значений). Как я могу выбрать недостающие значения динамически.

Спасибо Sri

DATA

337.60,220.40,0.00,0.00,200.42,216.61,261.04
323.00,249.20,65.30,0.00,201.93,210.91,309.98
116.80,474.80,0.00,0.00,203.43,215.76,234.93
72.10,505.90,0.00,0.00,204.93,215.72,233.47
148.30,771.70,0.00,0.00,206.44,217.00,239.05
90.70,287.20,0.00,0.00,207.94,215.43,216.85
337.20,334.50,10.20,0.00,209.45,226.85,306.57
142.50,142.80,0.00,0.00,210.95,240.09,240.31
279.10,289.60,51.80,0.00,212.45,227.75,262.30
273.60,337.70,0.00,0.00,213.96,256.86,223.66
332.40,425.60,0.00,0.00,215.46,238.36,237.63
45.70,299.30,0.00,0.00,216.96,223.92,241.41
49.10,529.40,0.00,0.00,218.47,235.81,282.17
185.30,331.80,38.00,0.00,219.97,235.81,309.29
552.90,454.80,0.00,0.00,221.47,224.60,269.09
176.20,441.60,0.00,0.00,222.98,232.44,293.95
170.00,,0.00,,,,327.96
200.00,,0.00,,,,291.69
241.20,156.00,0.00,0.00,227.49,235.55,278.66
118.00,383.20,3.20,0.00,228.99,269.28,325.31
62.00,189.70,0.00,0.00,230.50,248.73,266.95
400.20,244.20,0.00,0.00,232.00,239.70,271.27
163.70,826.60,0.00,500.00,233.50,245.06,294.98
250.40,236.60,0.00,0.00,235.01,261.72,288.24
51.30,684.20,0.00,0.00,236.51,245.06,237.37
412.50,128.90,0.00,500.00,238.01,245.16,268.66
452.00,,,,,,314.68
481.00,155.50,0.00,0.00,241.02,278.72,348.44
162.20,201.90,0.00,500.00,242.52,250.36,255.58
171.80,152.00,0.00,500.00,244.03,246.85,339.06

1 Ответ

2 голосов
/ 09 сентября 2011

У вас, кажется, нет отрицательных значений в ваших данных, как насчет предварительной обработки перед передачей данных в фортран, где вы заменяете «,,» отрицательным значением, например,

sed 's/,,/,-1,/g'

Тогда вы можете легко идентифицировать эти неверные данные в вашей программе на Фортране и обрабатывать их соответствующим образом.

...