JSL 在列表中使用 Lag 或 Dif 函数?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />嗨伙计,
我有一个列表( list = {1, 3, 5, 7, 5, 9, 11, 13, 10, 14, 15, 17}; )我想修改,使其单调递增。也就是说,我想评估列表,以便将任何当前值 < 先前值设置为先前值,否则使用当前值。在 JSL 公式中,它看起来像这样:
如果( Dif( :List, 1 ) < 0,
滞后(:列表,1),
:列表
);
是否可以对矩阵中的项目执行类似 Dif 和 Lag 的函数?谢谢。
回复:JSL 在列表中使用 Lag 或 Dif 函数?感谢 MS 和 PMroz 提供了两种有趣的方式来思考和使用矩阵。
回复:JSL 在列表中使用 Lag 或 Dif 函数?矩阵很有趣! 如果利用 jsl 中的矩阵运算,通常可以避免循环。
一个= [ 1个, 3个, 5个, 7 , 5个, 9 , 11 , 13 , 10 , 14 , 15 , 17 ] ;
n = N行(一个) ;
位置=位置(一个[ 1个:: n - 1个] >一个[ 2个:: n ] ) ;
一个[位置+ 1个] =一个[位置] ;
节目(一个) ;
回复:JSL 在列表中使用 Lag 或 Dif 函数?喔好吧。那么你想要这个:
一个= [ 1个, 3个, 5个, 7 , 5个, 9 , 11 , 13 , 10 , 14 , 15 , 17 ] ;
为了(一世= 2个,一世<=行(一个) ,一世++,
如果(一个[一世] <一个[一世- 1个] ,
一个[一世] =一个[一世- 1个] ;
) ;
) ;
[1, 3, 5, 7, 7, 9, 11, 13, 13, 14, 15, 17]
回复:JSL 在列表中使用 Lag 或 Dif 函数?感谢PMroz,
我需要列表保持当前顺序,如果当前值小于以前的值,只需将当前值更改为以前的值。我要生产的是:
一个= [ 1个, 3个, 5个, 7 , 7 , 9 , 11 , 13 , 13 , 14 , 15 , 17 ] ;
从
一个= [ 1个, 3个, 5个, 7 , 5个, 9 , 11 , 13 , 10 , 14 , 15 , 17 ] ;
回复:JSL 在列表中使用 Lag 或 Dif 函数?我不相信矩阵有 DIF 和 LAG 函数,但你真的不需要它们。您可以遍历列表/矩阵并引用 (i-1) 或 (i+1),其中 i 是您的循环索引。
顺便说一句,我不会用列表作为变量,因为它是 JSL 中的函数。
或者,您可以对矩阵进行排序:
一个= [ 1个, 3个, 5个, 7 , 5个, 9 , 11 , 13 , 10 , 14 , 15 , 17 ] ;
b =升序(一个) ;
[1, 3, 5, 5, 7, 9, 10, 11, 13, 14, 15, 17]