Ungültiges Matrix-TokenHallo. Außer < habe ich dazu nichts gefunden https://community.jmp.com/t5/Discussions/invalid-matrix-token/td-p/2111> (ein schrecklich formatierter Beitrag) und nichts im Skriptindex. Was ist ein Fehler „Ungültiges Matrix-Token“? Was bedeutet das?
Wenn ich versuche, eine Matrix in meinem Skript zu instanziieren, z
m = [i j];
wobei und numerische Variablen sind, wirft es den Fehler und zeigt auf i.
Ich denke, das ist der gesamte Kontext, den ich liefern kann. Lassen Sie mich wissen, ob eine konkrete Klarstellung erforderlich ist. Ich kann versuchen, Ihnen dabei zu helfen, mir zu helfen.
Prost,
Mike
Automatisierung und SkripterstellungBetreff: Ungültiges Matrix-TokenHallo,
@jthi lieferte eine Antwort mit schwer zu findender Syntax.Zu Ihrer Information füge ich noch etwas hinzu. Als Senior gefällt mir immer noch das Konzept, Platz für Matrixspeicher zu reservieren und ungenutzten Platz freizugeben. Dies erspart die Verkettung und kann insbesondere bei potenziell großen Matrizen eine Zeitersparnis bedeuten.
Außerdem denke ich, dass eine einfache Methode zum Erstellen von Matrizen darin besteht, die J-Funktion von JMP zu verwenden. Sie ist im Skriptindex > Funktionen > Matrix aufgeführt.
Unten finden Sie ein einfaches Skript, das seine Verwendung demonstriert.Zu Ihrer Information.
Names Default To Here( 1 );
m1x2 = J( 1, 2, 0 ); // a 1x2 matrix of zeros
m2x1 = J( 2, 1, Empty() ); // a 2x1 matrix all empty values
Show( m1x2, m2x1 );
imax = 100;
jmax = 1000;
//like an ALLOCATE or DIM
mm = J( imax, jmax, Empty() );
//within the program logic and counting say imax = 5 and jmax =3;
imax = 5;
jmax = 3;
//like a redimension
mm = mm[1 :: imax, 1 :: jmax];
Show( mm, N Col( mm ), N Row( mm ) );
Betreff: Ungültiges Matrix-TokenFür die Matrixverkettung wird die JMP-Hilfe höchstwahrscheinlich die Antworten parat haben JMP-Hilfe – Matrixverkettung
Denken Sie auch daran, den Wert auf die alte Matrix zu setzen, wenn Sie den Wert ändern möchten
Names Default To Here(1);
i = 1;
k = 1;
m1 = Matrix({{i, k}}); //(1x2)
Write(m1);
Write("\!N");
m1 |/= [2 2]; //or m1 = m1 |/ [2 2]; or m1 = VConcat(m1, [2 2]);
Write(m1);Betreff: Ungültiges Matrix-TokenOkay, das reicht, entschuldige den unnötigen Beitrag da unten, ich habe deine Antwort hier nicht gesehen. Vielen Dank!Betreff: Ungültiges Matrix-TokenIch habe Probleme beim Verketten mit Concat() oder |/, meinem Startarray und zusätzlichen Elementen. Wenn ich die Ausgabe schreibe(), entspricht sie dem Startarray, es wurde nichts verkettet (Ergebnis ist [0 0]).Betreff: Ungültiges Matrix-TokenSpielen Sie mit diesem Beispiel herum:
Names Default To Here(1);
i = 1;
k = 1;
m1 = Matrix({{i, k}}); //(1x2)
m2 = Matrix({{i}, {k}}); //(2x1)
Show(m1, m2);und überprüfen Sie die Option „Matrizen aus Listen erstellen“ über den Link, den ich zuvor bereitgestellt habe.
Betreff: Ungültiges Matrix-TokenDanke, @jthi . Das funktioniert!
Können Sie kurz etwas zur Dimensionalität sagen? Ich glaube, ich habe es herausgefunden, {{}{}} ist ein 2x0, aber ich weiß nicht, wie man ein 0x2 macht.
Mike
Betreff: Ungültiges Matrix-TokenKann die Fehlermeldung nicht genau erklären. Hängt höchstwahrscheinlich damit zusammen Konstruieren Sie Matrizen und am Ende:
Konstruieren Sie Matrizen aus Ausdrücken
Um Matrizen aus Ausdrücken zu konstruieren, verwenden Sie Matrix() . Elemente müssen Ausdrücke sein, die sich in Zahlen auflösen lassen.
Names Default To Here(1);
i = 1;
k = 1;
m = Matrix({{i, k}}); //[1 1]