JSL-Tipp: Verwenden Sie Matrizen anstelle von ListenDie Liste ist eines der grundlegenden Tools zum Erstellen von Daten in JSL. Die Macht von Listen besteht darin, dass sie beliebige Elemente (Zahlen, Zeichen, andere Listen, ...) enthalten können und je nach Bedarf wachsen und verkleinern können. Wenn Sie jedoch nur eine feste Zahlenliste benötigen, können Sie mit einer eindimensionalen Matrix eine wesentlich bessere Leistung erzielen.
Betrachten Sie diese beiden Beispiele, bei denen Arrays aus ungeraden Zahlen bestehen.
// Eine Liste mit ungeraden Zahlen erstellen
n = 1000;
y = {};
für (i = 1, i <= n, i ++,
y = 2 * i - 1;
);
y;
// eine Matrix aus ungeraden Zahlen erstellen
n = 1000;
y = J (1, n); // erstellt eine 1 xn-Matrix, bei der alle Werte auf 1 gesetzt sind
für (i = 1, i <= n, i ++,
y = 2 * i - 1;
);
Bei einigen hundert Artikeln gibt es keinen großen Unterschied. Da n jedoch über 1000 hinausgeht (oder wenn sich der obige Code in einer Schleife befindet), bemerken Sie den Geschwindigkeitsunterschied. Bei Listen gibt es einen gewissen Aufwand, um dynamisch und allgemein flexibel zu werden.
Beachten Sie, dass mit der J-Funktion eine neue Matrix mit einer bestimmten Größe erstellt werden kann. J m, n ist der Name für die Einheitsmatrix in linearer Algebra.
Beachten Sie auch, dass eine eindimensionale Matrix mit nur einem Index indiziert werden kann. Das heißt, wir können y verwenden anstelle von y [1] . Das macht es einfacher, Matrizen als Listen und in der obigen Schleife zu behandeln, was in beiden Fällen gleich ist.
Frage bis zum nächsten Mal: Wie kann der Code noch schneller gemacht werden?
Xan Gregg hat geschrieben: Hallo Uday, Sie sollten versuchen, in der ... Xan Gregg schrieb:
Hallo Uday,
Du solltest es in den Foren unter posten community.jmp.com Hier können Sie eine detailliertere Beschreibung angeben und Antworten von allen erhalten.
Aus Ihrer Beschreibung hier denke ich das Loc () Funktion wird nützlich sein, um zu untersuchen. Sie erhalten die Positionen der Zeilen, die eine bestimmte Bedingung für nachfolgende Operationen erfüllen.
Um die Spalten in den Graph Builder zu übernehmen, machen Sie sie in eine Tabelle mit Als Tabelle () .
Uday hat geschrieben: Hallo Mr.Gregg, also sagen wir, ich habe diese Matr ... Uday schrieb:
Hallo Herr Gregg,
Nehmen wir also an, ich habe diese Matrix mit 5 Spalten und n Zeilen. Jetzt möchte ich diese Spalten mit einer Bedingung ändern. Zum Beispiel: Ich möchte in allen Spalten der Matrix alle Werte auf NULL setzen, die kleiner als 5 sind.
Wie würde ich diese Spalten auch in einem Diagrammgenerator verwenden?
Grüße
Uday
JSL-Tipp: Ersetzen Sie Schleifen durch Funktionen in Matrizen - JMP B ... JSL-Tipp: Ersetzen Sie Schleifen durch Funktionen in Matrizen - JMP-Blog schrieb:
In meinem vorherigen JSL-Tipp haben wir gesehen, wie der Zugriff auf Matrixelemente schneller ist als das Auflisten von Elementen. Es ist noch schneller, wenn Sie nicht [...]
Michael hat geschrieben: Ich würde denken, dass y = index (1,1000,2) wäre ... Michael schrieb:
Ich würde denken, dass y = index (1,1000,2) schneller wäre, obwohl ich es nicht verifiziert habe.
Xan Gregg hat geschrieben: Du hast recht. Ich dachte, ich wäre Clev ... Xan Gregg schrieb:
Du hast recht. Ich dachte, ich wäre schlau, diese Verbesserung für einen zukünftigen Tipp aufzubewahren, aber ich hätte vielleicht ein Beispiel finden müssen, das nicht untergraben werden konnte.
Ryan Kelly hat geschrieben: Wie läuft das in JMP? Ryan Kelly schrieb:
Wie führe ich das in JMP aus?
Xan Gregg hat geschrieben: JSL ist die JMP-Skriptsprache. Es ist... Xan Gregg schrieb:
JSL ist die JMP-Skriptsprache. Es ist für die normale interaktive Verwendung von JMP nicht erforderlich, kann jedoch für benutzerdefinierte Aufgaben nützlich sein. Datei> Neu> Skript erhalten Sie ein leeres Skriptfenster, in dem Sie Skripts wie die obigen Ausschnitte einfügen und mit Bearbeiten> Skript ausführen (Strg-R) ausführen können. Die Ausgabe wird, falls vorhanden, zum Protokollfenster geleitet.
Chris Dorger hat geschrieben: Wie erstelle ich eine Liste aus einer Matrix ... Chris Dorger schrieb:
Wie erstelle ich eine Liste aus einer Matrix- oder Datentabellenspalte?
Xan Gregg hat geschrieben: Die Funktion As List () konvertiert ein Ma ... Xan Gregg schrieb:
Die Funktion As List () konvertiert eine Matrix in eine Liste von Listen, eine für jede Zeile. Wenn Sie eine lange Liste wünschen, können Sie mit der Funktion Shape () zuerst alle Matrixelemente in eine Zeile einfügen.