2017-07-25 76 views
1

我正在嘗試在netlogo中開發一個模型,用戶可以在其中輸入方程以更改某些變量。我的問題是什麼可能是獲得方程式輸入的最佳方式,我應該如何解析並計算結果。尋找可以在netlogo中工作的「mathml」。如何在netlogo中將字符串解析爲實際方程

回答

4

不涉及MathML或任何類型的簡單解決方案是讓用戶直接輸入NetLogo表達式並使用runresult來運行這些表達式,這些表達式可以接收一串NetLogo代碼並執行它。

下面是一個簡單的例子,它使用輸入框小部件(類型爲「String(reporter)」)來允許用戶輸入任意的數學表達式。按鈕打印輸出盒與表達式的結果:

enter image description here

在現實世界中的應用,當然,你必須非常careful錯誤處理。

+0

運行結果命令將有助於字符串評估。但在評估之前,我需要解析字符串以獲取列表中的值。即 假設我有三個列表,L實用程序,g實用程序,grp實用程序 – Maria

+0

實際上,我有三個列表,L-實用程序,g實用程序,grp實用程序 這些列表中的每一個都包含本地,全局和組的值我希望用戶隨時間輸入效用變化的等式,例如變化的等式可以是L1 + L3 * L4/G3。爲了評估該字符串,L1應該是l實用程序的項目1,L3是l實用程序的項目3,並且G3是g實用程序列表的項目3。請親引導我如何做到這一點。解析這個字符串後,我可以使用運行結果進行評估。 – Maria

+0

@Maria:我認爲這需要一個單獨的問題。我現在沒有時間看它,但其他人可能會提供幫助。 –