몇 가지 방법을 사용할 수 있습니다. 가장 단순한 것은 matrix:times-element-wise
일 것입니다. 불행하게도, 이것은 단지 1보다 크거나 같은 정수 능력을 위해 작동합니다
to-report matrix-power [ mat n ]
repeat n - 1 [
set mat matrix:times-element-wise mat mat
]
report mat
end
은 또한 전력에 각 요소를 인상하는에 맵을 사용하여 다음 목록의 목록에 행렬을 변환 할 수 있습니다. 이것은 0 분별 능력 및 네거티브 작업의 이점을 갖는다 :
to-report matrix-power [ mat n ]
report matrix:from-row-list map [ map [ ?^n ] ? ] matrix:to-row-list mat
end
map [ ?^n ] some-list
는 n
의 전력 목록의 각 요소를 일으킨다. matrix:to-row-list
은 행렬을 목록의 목록으로 변환합니다. 따라서 의 결과에 각 목록 map [ ?^n ]
을 적용합니다. 그런 다음 결과를 다시 matrix:from-row-list
행렬로 변환합니다.
당신은 어떤 요소 많다는 작동 할이 일반화 할 수 있습니다, 그리고
to-report matrix-map [ function mat ]
report matrix:from-row-list map [ map function ? ] matrix:to-row-list mat
end
을 우리가 같이 전원 기능을 정의 할 수 있습니다 :
to-report matrix-power [ mat n ]
report matrix-map task [ ?^n ] mat
end
작업을 효율적으로 사용합니다. 행렬 확장이 작성되었을 때 작업이 존재했다면, 아마도'matrix : map'이 확장에 포함되었을 것입니다. 행렬은 변경 가능하므로 결과에 대한 새 행렬을 구성할지 여부 (또는 사용자가 원하는대로)에 내용을 변경할지 여부를 선택할 수 있습니다. –
확장 기능은 명령 블록을 사용할 수도 있습니다. 맞습니까? 어쨌든 https://github.com/NetLogo/Matrix-Extension/issues/2 –
에 대한 기능 요청을 열었습니다. 확장 기능은 일류 작업을 수행하기 전에도이를 위해 기자 블록을 사용할 수있었습니다. –