약간의 도움이 필요합니다. 데이터 파일 (파일럿 피사체)에 약 1500 개의 데이터 포인트가있는 세 번의 실험이 있습니다. 각 시험은 1500 데이터 포인트로 절단해야합니다. 나는 아래의 데이터 파일 샘플뿐만 아니라 사용하고있는 코드를 포함하고있다. 어떤 도움이라도 대단히 감사하겠습니다.트라이얼 트라이얼
`BEGIN{ SKIP=0}
{
if ($1=="MSG" && SKIP==0)
{
FS=" "
printf("\n%s",$6)
SKIP=1;
}
else if ($1=="MSG" && SKIP==1)
{
FS=" "
printf(" %d",$6)
SKIP=0;
}
else
FS="\t"
printf(" %.2f",($3+$4)/2)
}
}
`MSG 1 # Message: bince.bmp
MSG 1 # Message: 103
SMP 1 0 0 0 0 0
SMP 1 0 0 0 0 0
SMP 1 0 0 0 0 0
SMP 1 0 0 0 0 0
SMP 1 0 0 0 0 0
SMP 1 0 0 0 0 0
SMP 1 0 0 0 0 0
SMP 1 0 0 0 0 0
SMP 1 10.44 10.44 11.26 11.26 0
SMP 1 10.19 10.19 11.03 11.03 0
SMP 1 10.09 10.09 11.23 11.23 0
SMP 1 10.24 10.24 11.03 11.03 0
SMP 1 10.09 10.09 11.3 11.3 0
SMP 1 10.27 10.27 11.16 11.16 0
SMP 1 10.02 10.02 11.22 11.22 0
SMP 1 10.01 10.01 11.16 11.16 0
SMP 1 10.28 10.28 11.16 11.16 0
SMP 1 10.22 10.22 11.3 11.3 0
SMP 1 10.18 10.18 11.25 11.25 0
SMP 1 10.37 10.37 11.26 11.26 0
SMP 1 10.54 10.54 11.22 11.22 0
SMP 1 10.19 10.19 11.26 11.26 0
SMP 1 10.39 10.39 11.27 11.27 0
출력은 각 시험 샘플의 지정된 번호를 하나의 행되는으로,이처럼 보이는 결국해야한다 :이 그냥 각 시험에서 1500 개 샘플을 잘라 같은 것을 추가
' 101 0.00 0.00 0.00...10.23 10.23 12.12 12.12
103 0.00 0.00 0.00...10.23 10.23 12.12 12.12
104 0.00 0.00 0.00...10.23 10.23 12.12 12.12'
:
'BEGIN{ SKIP=0; counter=0}
{
if ($1=="MSG" && SKIP==0)
{
FS=" "
printf("\n%s",$5)
SKIP=1;
}
else if ($1=="MSG" && SKIP==1)
{
FS=" "
printf(" %d",$6)
SKIP=0;
}
else if ($1!="MSG" && counter <=1500) {
{
FS="\t"
printf(" %.2f",($4+$5)/2)
counter++
}
}
}
4 개의 열을 볼 수 있으며 유효한 데이터 요소가 무엇인지 알 수 없습니까? – Endoro
$ 3 및 $ 4는 왼쪽 눈의 수직 및 수평 동공 직경입니다. 그것들은 평균화되어 하나의 데이터 포인트를 생성합니다. 위의 데이터는 예제 일뿐입니다. –
본질적으로 메시지 코드와 행의 각 줄에 대한 평균 동공 지름을 가진 파일을 생성합니다. 행의 길이가 같지 않으므로 3 개의 모든 시도에 평균 1500 개의 직경이 있으므로 행을 잘라야합니다. –