Входные данные каждый тик из файла Excel
У меня есть внешний файл (.xls) с прогнозом цен. Мне нужно загрузить эти данные таким образом, чтобы модель считывала для каждого тика соответствующее значение, например:
на отметке 1 - значение цены 2015 года, на отметке 2 - значение цены 2016 года; на отметке 3 значение цены 2017 года;
и так далее...
Мне нужно установить расширения для Netlogo или есть другой способ достичь моей цели?
Большое спасибо за ваше внимание и за ваше время.
1 ответ
Во-первых, чтобы облегчить чтение файла, я рекомендую сохранить его из Excel в виде файла CSV. CSV - это очень простой, легко интерпретируемый формат, который является одним из "общих форматов" в диалоговом окне "Сохранить как...". Далее, если возможно, попробуйте выделить данные в один столбец без заголовка, например:
Если это невозможно, ничего страшного, но это облегчит вашу жизнь.
Как только вы это сделаете, вы можете использовать file-read
читать значения из файла по одному. Чтобы прочитать его, я бы порекомендовал прочитать все это в виде списка во время установки. Вот как:
globals [ prices ]
to setup
ca
...
set prices []
file-open "/path/to/UPLOAD.csv" ;; or user `user-file` to allow the user to select a file
while [ not file-at-end? ] [
set prices lput file-read prices
]
file-close
...
end
Это помещает все значения в список prices
что вы можете прочитать из каждого тика. Если вы хотите прочитать один элемент за тик, то это просто item ticks prices
чтобы получить ticks
ый пункт из списка.