Verwendung von Match in einer Matrix ohne SchleifeAlles,
Ist es möglich, Match auf Matrizen zu verwenden? Ich sehe in der Dokumentation nicht, dass dies möglich ist, aber hat das schon mal jemand versucht? Im Wesentlichen ist hier ein Beispiel, was ich ohne Schleife erreichen möchte. Ich wünschte, es gäbe mehr Dokumentation und Blogbeiträge zum Vektorisieren von Matrixoperationen in JSL.
A = [0.1,0.2,0.3,0.4];
TestMat = [1,2,3,4,4,2,3,1,3,2,4,1];
TestMat1 = J(N Rows(TestMat),1,0);
for(i = 1, i <= N Rows(TestMat), i++,
TestMat1[i,1] = Match(TestMat[i],1,A[1],2,A[2],3,A[3],4,A[4]);
);
Show(TestMat1);
Re: Verwenden von Match in einer Matrix ohne Schleife @ gzmorgan0 .
Wenn Sie das von Ihnen erwähnte Beispiel durchsehen, wird in diesem Abschnitt nur die logische Indizierung dokumentiert. Das Konzept der logischen Indizierung ist mächtig und ein Ansatz der Zielvektorisierung von Code.
Mit fast jeder anderen Sprache / Analyseplattform, sei es R, Matlab, Python usw. Es gibt unzählige Dokumentationen und integrierte Funktionen, die das Schreiben von reinem, vektorisiertem Code erleichtern. Sie wissen vielleicht bereits, wie Sie dies tun, aber vorausgesetzt, dieses begrenzte Beispiel für die logische Indizierung ist meiner Meinung nach nicht besonders effizient, um sauberen, schnellen Code für alle Anforderungen zu schreiben.
Versuchen Sie bitte, "Vectorized Code in JMP" zu googeln. https://community.jmp.com/t5/JMP-Blog/JSL-Tip-Use-Matrices-Instead-of-Lists/ba-p/29773 ). Bitte wiederholen Sie die Übung für eine der anderen oben genannten Sprachen und sehen Sie, wie viele Informationen Ihnen zur Verfügung stehen. Es ist leicht, meine Anfrage abzulehnen, aber ich denke, es wird unserer Community und ihren Benutzern gut tun, wenn es mehr Dokumentation gibt, die tief in ein paar Beispielen geht und einige häufige Probleme anspricht.
Re: Verwenden von Match in einer Matrix ohne SchleifeScripting-Handbuch, Kapitel 7 "Datenstrukturen" Abschnitte: Listen und Matrizen enthalten Beispiele. Insbesondere die Unterabschnitte Matrizen: "Abonnements" und "Indizieren in eine Matrix oder Liste mit einer anderen Matrix oder Liste" . Vince Fallers Antwort auf Sie über Lag-Funktionen in Matrizen enthält mehrere Beispiele.
Sie sollten die Abschnitte über Listen, Matrizen und assoziative Arrays lesen.
Re: Verwenden von Match in einer Matrix ohne SchleifeDanke Jeff. Das hat funktioniert.
Wäre die Anforderung, die Dokumentation zu Vektorisierungsvorgängen mit Beispielen (Anforderung / Vorschlag) hinzuzufügen, da ich in JMP immer mehr nach Vektorisierung suche, ist mir klar, dass es nicht genügend Blogs / Dokumentationen gibt, die den Benutzer bei der Erörterung des Themas unterstützen.
Re: Verwenden von Match in einer Matrix ohne SchleifeRe: Verwenden von Match in einer Matrix ohne SchleifeVerwenden Sie TestMat als Subskription für A und weisen Sie es TestMat1 zu:
A = [0.1, 0.2, 0.3, 0.4];
TestMat = [1, 2, 3, 4, 4, 2, 3, 1, 3, 2, 4, 1];
TestMat1 = A[TestMat];
Show(TestMat1);
/*:
TestMat1 = [0.1, 0.2, 0.3, 0.4, 0.4, 0.2, 0.3, 0.1, 0.3, 0.2, 0.4, 0.1];