요구 사항을 충족하는 지정된 데이터 범위에서 첫 번째 위치를 효율적으로 찾는 방법은 무엇입니까?예를 들어, Big Class.jmp
계산 단계는 다음과 같습니다.
if(row()>30,contains(:height[Index(1,30)],abs(:height[Index(1,30)]-:height)<3))
행의 수가 30보다 크면
1-30행의 높이와 이 선의 높이가 2 이하인 절대값 차이의 데이터를 비교하여 위의 조건을 충족하는 1-30행의 개수를 먼저 계산합니다.

감사합니다!
스크립팅Re: 요구 사항을 충족하는 지정된 데이터 범위에서 첫 번째 위치를 효율적으로 찾는 방법은 무엇입니까?도움을 주신 전문가들에게 감사드립니다. 이러한 방법을 연구하면서 보다 효율적인 방법을 알게 되었습니다.Re: 요구 사항을 충족하는 지정된 데이터 범위에서 첫 번째 위치를 효율적으로 찾는 방법은 무엇입니까?질문을 올바르게 이해했다면 다음과 같이 작동할 수 있습니다(Loc 및 행렬 첨자 사용).
If(Row() > 30,
m = Loc(Abs((:height << get as matrix)[1::30] - :height) < 3, 1);
If(N Items(m) > 0,
m[1],
.
)
);
Big Class의 전체 예:
더보기... Re: 요구 사항을 충족하는 지정된 데이터 범위에서 첫 번째 위치를 효율적으로 찾는 방법은 무엇입니까?안녕 @lwx228 ,
나는 이것이 당신의 공식보다 더 나은지 확신하지 못하지만 여기에 같은 일을 수행하는 또 다른 방법이 있습니다(제 생각에는).더 큰 테이블의 경우 속도가 느립니다. 많은 행을 처리하는 경우 가능한 모든 높이 값에 해당하는 원하는 행 번호로 조회 테이블을 만든 다음 테이블에 조인할 수 있습니다.

If( Row() > 30,
firstrowmatch = 0;
For( r = 1, r <= 30 & firstrowmatch == 0, r++,
mtch = Contains( Index( :height - 2, :height + 2, 1 ), :height[r] );
If( mtch > 0,
firstrowmatch = r
);
);
firstrowmatch;
)
Re: 요구 사항을 충족하는 지정된 데이터 범위에서 첫 번째 위치를 효율적으로 찾는 방법은 무엇입니까?이 어리석은 방법을 시도하고 결과를 얻었습니다. 전문가에게 물어보십시오. 이 공식을 단순화 할 수 있습니까?
감사!
If( Row() > 30,
r1 = Contains( height[Index( 1, 30 )], height + 2 );
r2 = Contains( height[Index( 1, 30 )], height + 1 );
r3 = Contains( height[Index( 1, 30 )], height );
r4 = Contains( height[Index( 1, 30 )], height - 1 );
r5 = Contains( height[Index( 1, 30 )], height - 2 );
Min( If( r1 == 0, 99, r1 ), If( r2 == 0, 99, r2 ), If( r3 == 0, 99, r3 ), If( r4 == 0, 99, r4 ), If( r5 == 0, 99, r5 ) );
)
