Входные данные каждый тик из файла Excel

У меня есть внешний файл (.xls) с прогнозом цен. Мне нужно загрузить эти данные таким образом, чтобы модель считывала для каждого тика соответствующее значение, например:

на отметке 1 - значение цены 2015 года, на отметке 2 - значение цены 2016 года; на отметке 3 значение цены 2017 года;

и так далее...

Мне нужно установить расширения для Netlogo или есть другой способ достичь моей цели?

Большое спасибо за ваше внимание и за ваше время.

1 ответ

Решение

Во-первых, чтобы облегчить чтение файла, я рекомендую сохранить его из Excel в виде файла CSV. CSV - это очень простой, легко интерпретируемый формат, который является одним из "общих форматов" в диалоговом окне "Сохранить как...". Далее, если возможно, попробуйте выделить данные в один столбец без заголовка, например:

Excel один столбец

Если это невозможно, ничего страшного, но это облегчит вашу жизнь.

Как только вы это сделаете, вы можете использовать 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 ый пункт из списка.

Другие вопросы по тегам