¿JSL usa funciones de retraso o diferencia en la lista?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola amigos,
Tengo una lista ( lista = {1, 3, 5, 7, 5, 9, 11, 13, 10, 14, 15, 17}; ) que quiero modificar para que sea monótonamente creciente.Es decir, quiero evaluar la lista para que cualquier valor actual
Si( Dif( :Lista, 1 ) < 0,
Retraso( :Lista, 1 ),
:Lista
);
¿Es posible realizar funciones similares a Dif y Lag en los elementos de una matriz?Gracias.
Re: ¿JSL usa funciones de retraso o diferencia en la lista?Gracias MS y PMroz por dos formas interesantes de pensar y jugar con matrices.
Re: ¿JSL usa funciones de retraso o diferencia en la lista?¡Las matrices son divertidas! Los bucles a menudo se pueden evitar si se aprovechan las operaciones de matriz en jsl.
a = [ 1 , 3 , 5 , 7 , 5 , 9 , 11 , 13 , 10 , 14 , 15 , 17 ] ;
norte = Fila N ( a ) ;
posición = ubicación ( a [ 1 :: norte - 1 ] > a [ 2 :: norte ] ) ;
a [ posición + 1 ] = a [ posición ] ;
Espectáculo ( a ) ;
Re: ¿JSL usa funciones de retraso o diferencia en la lista?Está bien.Entonces quieres esto:
a = [ 1 , 3 , 5 , 7 , 5 , 9 , 11 , 13 , 10 , 14 , 15 , 17 ] ;
por ( i = 2 , i <= filas ( a ) , i ++,
si ( a [ i ] < a [ i - 1 ] ,
a [ i ] = a [ i - 1 ] ;
) ;
) ;
[1, 3, 5, 7, 7, 9, 11, 13, 13, 14, 15, 17]
Re: ¿JSL usa funciones de retraso o diferencia en la lista?Gracias PMroz,
Necesito que la lista permanezca en el orden actual, simplemente cambie el valor actual al valor anterior si es menor que el valor anterior.Lo que busco producir es:
a = [ 1 , 3 , 5 , 7 , 7 , 9 , 11 , 13 , 13 , 14 , 15 , 17 ] ;
de
a = [ 1 , 3 , 5 , 7 , 5 , 9 , 11 , 13 , 10 , 14 , 15 , 17 ] ;
Re: ¿JSL usa funciones de retraso o diferencia en la lista?No creo que haya funciones DIF y LAG para una matriz, pero realmente no las necesita.Puede recorrer su lista/matriz y referencia (i-1) o (i+1), donde i es su índice de bucle.
Por cierto, yo no usaría lista como una variable, ya que es una función en JSL.
O simplemente puede ordenar su matriz:
a = [ 1 , 3 , 5 , 7 , 5 , 9 , 11 , 13 , 10 , 14 , 15 , 17 ] ;
b = orden ascendente ( a ) ;
[1, 3, 5, 5, 7, 9, 10, 11, 13, 14, 15, 17]