2011-04-29 50 views
5

如何將一個Netlogo文件中的過程包含到另一箇中?基本上,我想將遺傳算法的代碼從我的(相當複雜的)適應度函數中分離出來,但顯然,我希望健身記者能夠在「fitness.nlogo」中找到遺傳算法代碼,可能是「genetic.nlogo」。將Netlogo源文件包含到另一個

如果可以做到,程序是如何導入的,代碼是否被執行?它是否像Python一樣,導入模塊幾乎可以執行模塊中的所有內容,或者像C/C++那樣,文件被盲目「連接」?

這可能是一個愚蠢的問題,但我在Google上找不到任何東西。 Netlogo文檔說明了一些關於__includes的內容,這是一個可能有用的實驗性關鍵字,但這裏沒有多少解釋。也沒有例子。

任何提示?我應該去__includes?它是如何工作的?

+0

通過實驗發現我的答案。要包含的文件必須命名爲「something.nls」,它包含在主文件中: '__includes [「something.nls」]'。我不知道它探索找到它的路徑,但是如果包含的文件與主文件位於同一個文件夾中,它將起作用。命名空間似乎被連接起來,就像在C++中一樣。另外,如果在包含的文件中找到'turtles-own [new-property]',則會受到尊重。 – CamilB 2011-04-29 10:14:40

回答

11

要包含一個文件使用

__includes["libfile.nls"] 

增加這一點,並按下「確認」按鈕後,一個新的按鈕旁邊會出現在程序下拉菜單。在那裏你可以創建和管理多個源文件。

libfile.nls只是一個包含NetLogo代碼的文本文件。它是而不是一個netlogo模型,它始終以.nlogo結尾,因爲NetLogo模型包含除NetLogo代碼以外的許多其他信息。

包含一個文件相當於在該點插入其所有內容。爲了使它像可重用的庫文件一樣工作,應該創建使用代理集和參數作爲輸入變量的過程,以獨立於全局定義或接口設置。

該功能記錄在NetLogo用戶手冊http://ccl.northwestern.edu/netlogo/docs/programming.html#includes

+1

您對__includes進行了實驗時發現了更短,更清晰的解釋。我希望人們在我上面評論之前閱讀你的答案。 – CamilB 2011-04-29 10:42:49

+0

在'code'選項卡中,我點擊'includes'下拉菜單,然後點擊'New source file'。現在,一個新標籤打開'New File'。我如何命名這個文件? – 2015-06-29 20:09:27

相關問題