<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />이 초보자 질문에 대해 미리 죄송합니다.
나는 하나의 x와 하나의 y 열만 갖는다. 스크립트를 사용하여 테이블을 얻으려고합니다.
- 최대 y (문제 없음),
- 최대 주위의 정의 된 범위의 평균,
- x 값은 최대 y에 해당합니다.
아마 그것은 매우 쉬운 스크립트지만, 나는 그것에 진전 할 수 없을 것입니다!
도와 줘서 고마워!
그게 완벽 해요, 철저히 대답 해주셔서 정말 고맙습니다.
이 같은 것이 할 것입니다. 그러나 'LocMax ()'는 첫 번째 최대 값의 위치를 반환하며 최대 값이 여러 개인 경우 더 많은 작업을 수행해야합니다. 또한 창을 잘린 경우 필요에 따라 평균 계산을 조정할 수도 있습니다.
NamesDefaultToHere ( 1 ) ;
// 일부 데이터 만들기
dt = NewTable ( "X와 Y" ,
NewColumn ( "엑스" , 숫자 , 마디 없는 , 공식 ( 임의의 정규화 ())) ,
NewColumn ( "와이" , 숫자 , 마디 없는 , 공식 ( 임의의 정규화 ())) ,
AddRows ( 100 )
) ;
// 데이터를 벡터로 가져 오기
xVals = 기둥 ( dt , "엑스" ) << getAsMatrix ;
yVals = 기둥 ( dt , "와이" ) << getAsMatrix ;
// 가장 큰 y 값의 위치를 찾습니다.
yMaxPos = LocMax ( yVals ) ;
//이 위치에서 해당하는 x 및 y 값 가져 오기
yMax = yVals [ yMaxPos ] ;
xMax = xVals [ yMaxPos ] ;
// 창 크기 정의 (홀수 값으로 구성)
winSize = 9 ;
// 창 가장자리의 위치를 계산합니다.
왼쪽 = yMaxPos - ( winSize - 1 ) / 2 ;
권리 = yMaxPos + ( winSize - 1 ) / 2 ;
// 가장자리가 범위 내에 있는지 확인하십시오.
만약 ( 왼쪽 < 1 , 왼쪽 = 1 ) ;
만약 ( 권리 > NRow ( yVals ) , 권리 = NRow ( yVals )) ;
// 창에서 평균 y 값을 계산합니다.
yMean = 평균 ( yVals [ 왼쪽 :: 권리 ]) ;
// 로그에 인쇄 창
로그 지우기 () ;
인쇄 ( yMaxPos , yMax , xMax , winSize , 왼쪽 , 권리 , yMean ) ;