2017-12-31 135 views
0

Wie lösche ich den Inhalt einer Liste in Netlogo?Netlogo: Inhalt der Liste löschen

Dies ist ein abgestimmter-down-Version von meinem Code als Beispiel zu funktionieren:

to calculate_SN 
    ask turtles [ 
    set subjective_norm_list [] 
    set subjective_norm_list [1 2 3 4 5] 
    set subjective_norm (sum subjective_norm_list/length subjective_norm_list) 
    *delete content of subjective_norm_list so that it is empty again* 
end 

Der Teil zwischen Sternchen, weiß ich nicht.

Antwort

3

Wenn Sie subjective_norm_list wollen eine leere Liste sein, können Sie es auf eine leere Liste gesetzt, genau wie Sie haben, wenn Sie es das erste Mal initialisiert:

set subjective_norm_list [] 

Beachten Sie, dass, technisch gesehen, Listen NetLogo sind immutable, also sind Sie nicht löschen die Elemente in der Liste: Sie erstellen nur eine neue Liste mit keine Elemente darin und die Zuweisung an die gleiche Variable. Aber in jeder Hinsicht ist es dasselbe: subjective_norm_list ist wieder leer.

4

Basierend auf Ihrem bisher geteilten Code sollten Sie einen anderen Ansatz wählen: Erstellen Sie eine Funktion.

to-report subjective-norm [#lst] 
    report (sum #lst)/(length #lst) 
end 

Es ist unklar, ob Sie Ihrer Liste jemals einen Variablennamen zuweisen müssen. Sie können es möglicherweise bei der Erstellung verwenden und dann vergessen. (Es wird Müll gesammelt werden.)

+0

Vielen Dank! Ich liebe die Idee zu berichten, danke für den Rat. Allerdings verwende ich die Variable für Plotzwecke (die subjektive Gesamtsumme ist ein Ergebnis meines Modells). Aber ich werde deinen Stil für einen anderen Fuzzy-Code verwenden, den ich herumliegen habe, merci :) – maria118code