Назначение значений патча из растровых данных в NetLogo - PullRequest
1 голос
/ 11 июня 2019

Я пытаюсь назначить значения для исправлений в NetLogo на основе значений растра: 0, 1 и 2. Эти исправления должны относиться только к значениям моего растра, который отображается правильно с использованием шкалы серого, а затем «рисовать» сами по себе цвета синий, зеленый и белый соответственно.

Эти растровые данные загружаются нормально с использованием расширения ГИС. После gis: load-dataset я пытаюсь использовать команду apply-raster и ifelse, чтобы задать параметры на основе значений. Я полагаю, что неправильно использую логический оператор, но очень немногие примеры в Интернете столь же обширны, как и мои попытки.

patches-own [value]

; Draws raster dataset (terrain of each Millenium) 
to display-terrain
  gis:paint terrain 62

 ask patches [
  (ifelse
    value = 0 [
      set pcolor blue
    ]
    value = 1 [
      set pcolor green
    ]
    ; elsecommands
    [
      set pcolor white
  ])
]
end

В настоящее время я не могу сказать, правильно ли назначены значения, и продолжаю получать сообщение об ошибке «ifelse ожидает, что это командный блок», поэтому я предполагаю, что форматирование является неправильным и / или отсутствует сопоставление значений.

1 Ответ

1 голос
/ 11 июня 2019

На самом деле, вы используете его именно так, как написано в документации, чтобы использовать его, но у вас, вероятно, нет текущей версии. Множественный выбор ifelse является совершенно новым в NetLogo v6.0.4. Вам нужно явно включить расширение cf, и вам нужно имя расширения при вызове нового синтаксиса ifelse.

Более ранние версии NetLogo вообще этого не делают. Синтаксис у вас есть для v6.1, который был выпущен только в последние пару недель.

Попробуйте это для v6.0.4:

extensions [cf]
patches-own [value]

to testme
  clear-all
  ask patches [ set value one-of [0 1 2] ]
  ask patches [
  (cf:ifelse
    value = 0 [
      set pcolor blue
    ]
    value = 1 [
      set pcolor green
    ]
    ; elsecommands
    [
      set pcolor white
    ])
  ]
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...