<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕하세요,
나는 거의 완전히 JSL에 익숙하지 않기 때문에 내 질문이 사소한 것처럼 보이는다면 ... 실례합니다.
어쨌든, 나는 처리 된 분광 데이터가 들어있는 데이터 테이블을 다루고 있습니다. 각 라인은 각각의 .xtxt 파일에있는 하나의 특정 분광 XY 데이터 세트에 해당합니다. 이제는 현재 선택된 셀 / 행에 해당하는 원시 데이터 집합의 오버레이 플롯을 동적으로 생성하려고합니다.
예를 들어 행 2와 3을 선택하면 스크립트가 해당 .txt 파일을 모두 열고 새 임시 데이터 테이블로 업데이트 한 다음 2 개의 데이터 계열로 오버레이 플롯을 생성합니다. 다음 번에 6에서 9까지의 행을 선택하고 결과 오버레이 플롯에 4 개의 데이터 시리즈가 포함되어야합니다.
이 모든 작업을 수행하는 스크립트는 실제로 동적 인 방식으로 오버레이 플롯을 생성 할 때까지 잘 작동합니다.
단순화 된 플롯 생성 방법은 다음과 같습니다.
오버레이 플롯 (
X (: 이름 ( "cm-1")),
와이(
구문 분석 (plot1),
구문 분석 (plot2),
구문 분석 (plot3)
),
연결 지점 (1),
쇼 포인트 (0),
);
변수 plot1 등으로 임시 데이터 테이블의 열에 해당합니다. 그러나 데이터 시리즈의 양은이 예 (3)에서 고정되어 있습니다. 어떻게 든 동적으로 만들 수 있습니까? 그래서 기본적으로 스크립트는 선택한 셀 / 행의 수에 따라 Y의 양을 변경합니까?
예 Y (parse (plot1)), Y (parse (plot1), parse (plot2), parse (plot3), parse (plot4)
플롯 변수는 이미 선택한 행의 양에 따라 동적으로 생성됩니다. 그래서 내가 필요로하는 것은 동적으로 Y () 표현식의 엔트리 수를 선택한 행의 수와 일치시키는 방법입니다.
어떤 도움을 주시면 감사하겠습니다!
Y 열 목록을 사용하십시오 : Y (목록) 또는 Y (eval (목록)). 예 :
dt = 현재 데이터 표 () ; // 임시 데이터 테이블
n1 = 2 ; // 원래 선택한 행 수
n2 = N Col ( dt ) ; // dt에있는 총 cols 수
오버레이 플롯 (
엑스 ( : 이름 ( "cm-1") ) ,
와이 ( ( dt << 열 이름을 얻는다. ) [ n2 - n1 + 1 :: n2 ] )
// Temp 테이블의 끝 부분에 있다고 가정하고 Y 열의 목록
) ;