JSL Lag- oder Dif-Funktionen in der Liste verwenden?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo Leute,
Ich habe eine Liste ( Liste = {1, 3, 5, 7, 5, 9, 11, 13, 10, 14, 15, 17}; ) Ich möchte sie so ändern, dass sie monoton ansteigt.Das heißt, ich möchte die Liste so auswerten, dass jeder aktuelle Wert < vorheriger Wert auf den vorherigen Wert gesetzt wird, andernfalls aktuellen Wert verwenden.In einer JSL-Formel sieht das so aus:
If( Dif( :List, 1 ) < 0,
Verzögerung( :Liste, 1 ),
:Aufführen
);
Ist es möglich, Dif- und Lag-ähnliche Funktionen für Elemente in einer Matrix auszuführen?Vielen Dank.
Betreff: JSL Lag- oder Dif-Funktionen in der Liste verwenden?Vielen Dank an MS und PMroz für zwei interessante Möglichkeiten, über Matrizen nachzudenken und mit ihnen zu spielen.
Betreff: JSL Lag- oder Dif-Funktionen in der Liste verwenden?Matrizen machen Spaß! Schleifen können oft vermieden werden, wenn man sich die Matrixoperationen in jsl zunutze macht.
a = [ 1 , 3 , 5 , 7 , 5 , 9 , 11 , 13 , 10 , 14 , fünfzehn , 17 ] ;
n = N-Reihe ( a ) ;
Pos = Lok ( a [ 1 :: n - 1 ] > a [ 2 :: n ] ) ;
a [ Pos + 1 ] = a [ Pos ] ;
Zeigen ( a ) ;
Betreff: JSL Lag- oder Dif-Funktionen in der Liste verwenden?Ah okay.Dann willst du das:
a = [ 1 , 3 , 5 , 7 , 5 , 9 , 11 , 13 , 10 , 14 , fünfzehn , 17 ] ;
zum ( ich = 2 , ich <= näht ( a ) , ich ++,
wenn ( a [ ich ] < a [ ich - 1 ] ,
a [ ich ] = a [ ich - 1 ] ;
) ;
) ;
[1, 3, 5, 7, 7, 9, 11, 13, 13, 14, 15, 17]
Betreff: JSL Lag- oder Dif-Funktionen in der Liste verwenden?Danke PMroz,
Ich brauche die Liste, um in der aktuellen Reihenfolge zu bleiben, ändere einfach den aktuellen Wert auf den vorherigen Wert, wenn er kleiner als der vorherige Wert ist.Was ich produzieren möchte, ist:
a = [ 1 , 3 , 5 , 7 , 7 , 9 , 11 , 13 , 13 , 14 , fünfzehn , 17 ] ;
aus
a = [ 1 , 3 , 5 , 7 , 5 , 9 , 11 , 13 , 10 , 14 , fünfzehn , 17 ] ;
Betreff: JSL Lag- oder Dif-Funktionen in der Liste verwenden?Ich glaube nicht, dass es DIF- und LAG-Funktionen für eine Matrix gibt, aber Sie brauchen sie wirklich nicht.Sie können Ihre Liste/Matrix durchlaufen und auf (i-1) oder (i+1) verweisen, wobei i Ihr Schleifenindex ist.
BTW würde ich nicht verwenden aufführen als Variable, da es sich um eine Funktion in JSL handelt.
Oder Sie können Ihre Matrix einfach sortieren:
a = [ 1 , 3 , 5 , 7 , 5 , 9 , 11 , 13 , 10 , 14 , fünfzehn , 17 ] ;
b = aufsteigend sortieren ( a ) ;
[1, 3, 5, 5, 7, 9, 10, 11, 13, 14, 15, 17]