【发布时间】:2014-02-02 22:19:30
【问题描述】:
有没有办法在 NetLogo 中轻松制作一个 $n \cross m$ 矩阵?另外是否可以用随机值填充这个矩阵?谢谢。
【问题讨论】:
-
您尝试或研究了什么?实际上,您只是要求提供代码,而对手头的问题没有表现出最低限度的了解,这使得该帖子成为 SO 的主题。
有没有办法在 NetLogo 中轻松制作一个 $n \cross m$ 矩阵?另外是否可以用随机值填充这个矩阵?谢谢。
【问题讨论】:
此答案已针对 NetLogo 6 任务语法进行了更新
有关 NetLogo 矩阵扩展的文档,请参阅 http://ccl.northwestern.edu/netlogo/docs/matrix.html。
对于创建矩阵,有几个原语可以做到这一点:matrix:make-constant、matrix:make-identity、matrix:from-row-list、matrix:from-column-list。
为了创建一个矩阵并用随机值填充它,我建议先定义这个过程:
to-report fill-matrix [n m generator]
report matrix:from-row-list n-values n [n-values m [runresult generator]]
end
然后制作一个 5 x 5 的矩阵,例如,0 到 9 范围内的随机整数,它是:
fill-matrix 5 5 [-> random 10]
示例结果:
observer> show fill-matrix 5 5 [-> random 10]
observer: {{matrix: [ [ 5 9 3 2 6 ][ 5 8 2 8 0 ][ 6 7 3 7 4 ][ 7 0 4 6 3 ][ 7 9 0 0 5 ] ]}}
【讨论】: