<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
안녕 모두,
나는 불균등 한 간격으로 온도의 로그 파일과 그 사이의 기간을가집니다.
반복되는 온도가없고 동일한 온도 측정간에 짧은 간격이 없도록 데이터 세트를 정리하고 싶습니다.
반복을 삭제하려면 다음 코드를 사용합니다.
반복 = dt << 행을 가져오다. ( 지연 ( : 온도 , 1 ) == : 온도 ) ;
dt << 행 삭제 ( 반복 ) ;
같은 온도 사이의 짧은 점프를 위해 나는 다음을 사용한다 :
점프 = dt << 행을 가져오다. ( 과 ( 지연 ( : 온도 , 1 ) == 지연 ( : 온도 , - 1 ) , : 지속 < 2 ) ) ;
dt << 행 삭제 ( 점프 ) ;
이것은 일단 점프가 깨끗 해지면 새로운 반복과 다른 방법이있을 수 있기 때문에 반복적으로 수행됩니다. 그래서 for 루프에서 사용합니다. 나는 항상 이것을 지나치게 할 수 있지만 (나는 높은 숫자로 설정한다) 비효율적이다.
반복을 반복하지 않을 때 루프를 개선하기위한 제안 사항이 있습니까?
전체 스크립트는 다음과 같습니다.
dt = 새 테이블 ( "로그 파일" , 행 추가 ( 500 ) ) ;
dt << 새 열 ( "온도" ,
속성 설정 ( "가치 색상" , { 1 = - 13977687 , 2 = - 3780931 , 삼 = - 4222943 , 4 = - 13596966 , 5 = - 2211217 } ) ,
값으로 색상 셀 만들기
) ;
각 행에 대해 ( dt : 온도 = 무작위 정수 ( 5 ) ) ;
dt << 새 열 ( "지속" ) ;
각 행에 대해 ( dt : 지속 = 무작위 정수 ( 삼 ) ) ;
// 반복되는 행과 짧은 점프를 삭제합니다.
에 대한 ( 나는 = 1 , 나는 <= 5 , 나는 ++,
반복 = dt << 행을 가져오다. ( 지연 ( : 온도 , 1 ) == : 온도 ) ;
dt << 행 삭제 ( 반복 ) ;
점프 = dt << 행을 가져오다. ( 과 ( 지연 ( : 온도 , 1 ) == 지연 ( : 온도 , - 1 ) , : 지속 < 2 ) ) ;
dt << 행 삭제 ( 점프 ) ;
) ;
그렇습니다. 그들은 동등합니다. 합계는 항상 숫자를 반환하고 JMP는 0이 아닌 모든 숫자를 TRUE로 처리합니다. 따라서 테스트가 1 또는 37을 반환하는지는 중요하지 않습니다. 둘 다 똑같이 TRUE입니다.
탁신 @ms,
jmp를 읽는 방법을 설명해 주시겠습니까? N 행 ( 반복 ) + N 행 ( 점프 ) 테스트 표현으로?
그것은 다음과 같습니다 :
또는 ( N 행 ( 반복 ) , N 행 ( 점프 )) > 0
론
while 루프를 시도 할 수 있습니다. 반복 및 점프가 빈 행렬 일 때 아래 루프가 중지되어야합니다.
점프 = 반복 = [ 1 ] ;
동안 ( N 행 ( 반복 ) + N 행 ( 점프 ) ,
반복 = dt << 행을 가져오다. ( 지연 ( : 온도 , 1 ) == : 온도 ) ;
dt << 행 삭제 ( 반복 ) ;
점프 = dt << 행을 가져오다. ( 과 ( 지연 ( : 온도 , 1 ) == 지연 ( : 온도 , - 1 ) , : 지속 < 2 )) ;
dt << 행 삭제 ( 점프 ) ;
) ;