사인파 데이터를 정규화하기 위한 위상 편이모든 최소 피크가 x축을 따라 놓이도록 이동하도록 사인파 데이터를 위상 이동하려고 합니다. 이 코드로 시도했지만 " 'Matrix' , Matrix/*###*/(sineCol < < Get Values)"의 액세스 또는 평가에서 목록 또는 숫자여야 합니다."
도움을 주시면 감사하겠습니다.
// 데이터 로드
dt = 현재 데이터 테이블();
// 사인파 데이터로 열 지정
sineCol = dt << 열("PITCH");
// sineCol을 행렬로 변환
sineMat = Matrix(sineCol << Get Values);
// 최소 피크의 인덱스를 계산합니다.
minIndex = Loc Min(sineMat);
// 데이터를 이동할 포인트 수를 계산합니다.
shiftPoints = N Rows(sineMat) - minIndex;
// 데이터 이동
shiftedSineCol = J(N Rows(sineMat), 1, .);
For(i = 1, i <= N 행(sineMat), i++,
shiftedSineCol[i] = If(i <= shiftPoints, sineMat[shiftPoints-i+1], sineMat[N Rows(sineMat)-i+shiftPoints+1]);
);
// 이동된 데이터의 테이블 생성
newTable = 새 테이블("피치 이동", 행 추가(N 행(dt)));
newTable["PITCH Shifted"] = shiftedSineCol;
newTable["TIME"] = dt:column("TIME");
// 테이블 저장
newTable << Save("PITCH Shifted.jmp");
기본 데이터 분석 및 모델링Re: 사인파 데이터를 정규화하기 위한 위상 이동sineCol에 대한 참조가 올바르지 않습니다.
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
sineCol = dt << Column("name");
show(sineCol);
sineCol2 = Column(dt, "name");
show(sineCol2);
다음은 연속 열에서 행렬로 값을 가져오는 몇 가지 선택적 방법입니다.
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
sineMat1 = Column(dt, "height") << get values;
sineMat2 = dt[0, "height"];
show(sineMat1, sineMat2);Re: 사인파 데이터를 정규화하기 위한 위상 이동안녕하세요. 감사합니다. 저는 스크립트 작성 경험이 많지 않습니다. 이 업데이트된 줄을 스크립트에 어디에 넣었는지 설명해 주시겠습니까? 그리고 sineMat1과 sineMat2의 차이점은 무엇입니까?
감사합니다
Re: 사인파 데이터를 정규화하기 위한 위상 이동나는 당신이 이것을 사용할 수 있는 스크립팅에 충분히 익숙해져서 그것이 무엇을 하는지 이해할 수 있도록 노력하고 싶습니다(인쇄를 사용하여 스크립트 디버그, 데이터 테이블에서 열 참조 및 해당 열에서 값 가져오기). sineMat1과 sineMat2는 동일하지만 데이터 테이블에서 값을 검색하는 방법이 다릅니다.
sineCol 및 sineMat에 사용된 코드를 해당 데이터 테이블 및 열 이름으로 대체합니다. 아래는 Big Class 및 높이 열을 사용하는 예입니다.
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
sineCol = Column(dt, "height");
sineMat = Column(dt, "height") << get values;
Re: 사인파 데이터를 정규화하기 위한 위상 이동감사합니다. 이것은 제 전문 분야가 아닙니다. 저는 박사 학위를 위해 제 데이터를 시각화하는 방법을 찾으려고 노력하고 있습니다. 이 오류가 발생하여 수정하려고 시도했지만 해결되지 않는 것 같습니다.
조언이 있으신가요?
잘못된 아래 첨자(숫자 또는 숫자 목록이어야 함){395} 'Assign' 액세스 또는 평가 , newTable["PITCH Shifted"] = /*###*/shiftedSineCol/*###*/
Re: 사인파 데이터를 정규화하기 위한 위상 이동열을 만들려고 할 때 새 테이블을 만든 후 구문이 잘못된 것 같습니까? JMP Scripting Index(JMP 도움말 메뉴에서 찾을 수 있음)를 확인하고 스크립팅 가이드(jmp.com) . 둘 다 .jsl 구문에 대한 좋은 예가 있습니다(때때로).
스크립팅 인덱스:

데이터 테이블(jmp.com)
Re: 사인파 데이터를 정규화하기 위한 위상 이동JMP Pro가 있습니까? 그렇다면 기능 데이터 탐색기 유용할 수 있습니다. 그것은 많은 데이터 처리 기능을 제공하고 주기적 데이터를 분석하기 위해 스플라인 기반 기능을 적합합니다. 그렇게 많이 코딩할 필요가 없을 수도 있습니다.