Betreff: Variablen übergeben Übergibt den Variablennamen anstelle des VariablenwertsEine Liste wie { x, y } enthält die Namen der Variablen, nicht ihre Werte. Einige JSL-Funktionen graben die Werte aus; line( {x1, y1}, {x2, y2} ) zum Beispiel.
Die EvalList-Funktion akzeptiert eine Liste mit Ausdrücken, vielleicht so einfach wie ein Variablenname, wertet sie aus und gibt eine neue Liste { 3, 4 } zurück.
Die Funktion Einfügen in erkennt, dass der Wert, den sie einfügt, eine Liste ist, und entpackt die Liste, um die einzufügenden Elemente abzurufen. Aus diesem Grund haben Sie eine Liste mit einem Element, die eine andere Liste mit zwei Elementen ist: Sie möchten die Liste mit zwei Elementen einfügen, ohne sie zu entpacken, also packen Sie sie in eine Liste ein.
Aber jetzt müssen Sie herausfinden, wie Sie die Auswertungsliste auf der inneren Liste der verschachtelten Liste erstellen. Sie können es tun, mit etwas wie dem:
x=3;
y=4;
evallist({evallist({x,y})}) // {{3, 4}}
Hier ist eine Abkürzung, die einfacher oder schwerer zu verstehen ist
x=3;
y=4;
aslist(x||y) // {{3, 4}}
AsList packt die Matrix in eine Liste und erstellt eine Liste von Listen von Zeilenelementen; die || Der Verkettungsoperator fügt zwei (oder mehr) Zahlen zu einer Zeilenmatrix zusammen.
Betreff: Variablen übergeben Übergibt den Variablennamen anstelle des VariablenwertsDanke für die Erklärung! Die Verwendung der doppelten Bewertungsliste hat bei mir funktioniert.
Beim Übergeben von Variablen wird der Variablenname anstelle des Variablenwerts übergebenVerwendung von JMP 15.2.1.
Ich glaube, ich habe ein Missverständnis darüber, wie Variablen in JSL funktionieren. Ich bin ein paar Mal auf dieses Problem gestoßen und möchte endlich verstehen, was ich falsch mache.
Ich habe eine Funktion, in der ich einige Berechnungen durchführe, die Ergebnisse in Variablen speichere und dann versuche, die Ergebnisse in eine Liste einzufügen. Ich weiß, dass die Variablen die von mir gewünschten Werte enthalten, aber wenn ich versuche, sie zur Liste hinzuzufügen, wird der Variablenname anstelle des Werts der Variablen zur Liste hinzugefügt. Da es sich um lokal definierte Variablen handelt, führt dies zu Fehlern außerhalb des Funktionsumfangs.
Ich habe versucht, Eval/Eval List überall dort zu verwenden, wo ich mir vorstellen kann, aber auch das funktioniert nicht.
Wie kann ich dafür sorgen, dass die zurückgegebene Liste die Werte innerhalb der Variablen enthält?
Vielen Dank im Voraus!
list = {{3,4}, {1,5}, {3,2}};
deltaX = 1;
deltaY = 2;
updateList = Function({cl, dx, dy},
{newX, newY},
newX = cl[1][1] + dx;
newY = cl[1][2] + dy;
show(newX);
Insert Into(cl, {{newX, newY}}, 1);
show(cl);
return(cl);
);
list2 = updateList(list, deltaX, deltaY);
show(list2);
//this errors because list2[1][1] contains newX instead of the value 4
//list2[1][1] + 1;
Ergebnisse teilen und kommunizierenWindows