scripting for noobs

Dieses Forum beschäftigt sich mit allen Fragen, Kommentaren und Anregungen zu MemBrain Skripten. Auch der Austausch von Skripten zwischen MemBrain Benutzern soll hiermit gefördert werden.
Wenn Sie ein interessantes Skript haben, das Sie anderen MemBrain Benutzern zur Verfügung stellen wollen, dann Erstellen Sie dafür jeweils bitte ein neues Thema in diesem Forum. Der Titel des Themas sollte es anderen Benutzern erlauben möglichst schnell zu erfassen, wozu Ihr Skript dient.
Post Reply
Andreas
Posts: 7
Joined: Tue 18. Oct 2011, 11:50

scripting for noobs

Post by Andreas »

Hallo.
habe im beim ausführen eines scripts folgendes problem:
beim durchlaufen einer for-schleife wird immer nur der letzte input neuron hinzugefügt.
for (i = 0; i < 10; i++);
{
posX = i*10;

input = input + i;
hidden = hidden + i;
AddInput(posX, 40, input);
AddHidden (posX, 120, hidden);
}
der position und dem namen nach zu urteilen, wird die schleife schon durchlaufen.
was mache ich falsch?
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: scripting for noobs

Post by Admin »

Andreas wrote:for (i = 0; i < 10; i++);
Das Problem ist der ';' hinter obiger Zeile, der muss weg.
So wie es da steht, läuft zunächst die ganze Schleife ab (und tut nichts als von 0 bis 9 zu zählen), dann wird der Anweisungsblock darunter (in den geschweiften Klammern) abgearbeitet ;-)

Zusätzlicher Tip:

Den horizontalen Abstand größer wählen und in MemBrain die Option <View><Snap To Grid> deaktivieren.

Oder aber die Neuronen so platzieren, dass sie auf dem Grid liegen (dazu gibt es auch Script-Funktionen, die die Grid SIze und den nächsten Gridpoint zurückgeben).

Viele Grüße,
Thomas Jetter
Andreas
Posts: 7
Joined: Tue 18. Oct 2011, 11:50

Re: scripting for noobs

Post by Andreas »

danke für die antwort.
habe das problem mit einer while schleife gelöst, weil die for schleife auch trotz richtiger Syntx nicht ordnungsgemäß funktioniert hat.
jetzt habe ich ein anderes problem. und zwar beim Ausführen von einer Lesson kommt immer wieder die Meldung "Lesson is not in correct format for net".
Wie kann ich denn herausfinden was genau da nicht passt?
habe ein .csv file geschrieben, was so aussieht:
input1;input2;input3;output1;output2
wert;wert;wert;wert;wert
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: scripting for noobs

Post by Admin »

Andreas wrote:Meldung "Lesson is not in correct format for net".
Wie kann ich denn herausfinden was genau da nicht passt?
MemBrain assoziiert Spaltennamen in einer Lesson mit Neuronennamen im Netz. Zu jedem Input- und Outputneuron muss MemBrain eine Spaltenentsprechung in den Inputs bzw. Outputs der Lesson finden (gleiche Namen, Case-Sensitiv).
Wenn diese Übereinstimmung nicht gefunden wird, dann erscheint die genannte Fehlermeldung.

Beheben kann man das dann, in dem man entweder die Namen des Netzes auf die Spaltennamen der Lesson überträgt oder umgekehrt die Spaltennamen der Lesson auf das Netz überträgt. Das geht im Lesson Editor über die Buttons 'Names From Net' bzw. 'Names To Net'. Es gibt auch sinngemäß benannte Scriptbefehle hierzu.

Wenn man genau wissen möchte, welche Übereinstimmungen nicht gefunden werden, kann man das Script anwenden, das in folgendem Post abgelegt ist:

viewtopic.php?f=13&t=64

Viele Grüße
Thomas Jetter
Post Reply