브래킷 배치 및 ifelse 및 Netlogo의 명령 사용에 문제가 있습니다.브래킷 배치 및 Netlogo의 ifelse 및 let 명령 관련 문제
로컬 변수 (멀티)를 결정하는 패치 소유의 (envi) 및 거북 자신의 (niche-opt, niche-range) 변수와 관련하여 다양한 조건이 있으며, 재생산의 확률. 이 다음 패치 변수 ENVI 일치하는 경우
거북이, 변수 틈새 옵트이 지역 변수 다 = 1
= ENVI을 틈새-선택하지만, ENVI는 틈새 옵트 + 내에있는 경우 - (틈새 범위! 거북 변수, 정수 범위는 1 - 3) 다음 멀티 0.8
그리고 ENVI 경우, 마지막 외부 틈새 옵트 + - 틈새 범위는 다중 = 0.2
그래서 로컬 변수 "멀티"이 될 수있다 3 개의 값 (1,0.8 또는 0.2)을 곱한 다음 거북이 자신의 변수 (특성 -2)를 곱하여 해치가 발생할 확률을 결정하는 데 사용됩니다.
if random-float 100 < (multi * trait-2 * 100)
오류 "정의 아무것도라는 이름의 멀티"와 함께 제공 :
내 문제는 코드의 라인에 있다는 것입니다. 문제는 지역 변수를 만드는 것처럼 내 브래킷 배치와 관련이 있다고 확신하지만 더 많은 대괄호를 추가해야하는지 또는 내가 갖고있는 것을 이동해야 하는지를 파악할 수 없습니다.
to go
ask turtles [
reproduce
]
end
to reproduce
ifelse niche-opt = envi
[let multi 1]
[ifelse envi >= (niche-opt - niche-range) and envi <= (niche-opt + niche-range)
[let multi 0.8]
[let multi 0.2]
]
if random-float 100 < (multi * trait-2 * 100)
hatch 1
end
'let'변수의 범위는 해당 블록 (있는 경우)으로 제한됩니다. 그래서 여기에는 두 개의 서로 다른'multi'가 있으며, 각각은 그것을 둘러싸는 대괄호 안에 만 존재합니다. –