2014-11-04 1 views
1

제 플롯 스크립트의 동작에 의아해합니다. 여러 파일을 플롯하려고합니다. 마지막 파일에서 다른 테두리 설정을 원합니다. 그래서 if 문을 생각해 냈습니다. 스크립트는 다음과 같습니다.명세서가 삽입 될 때 루프 스텝이 건너 뜁니다.

labeltitles = "0.01 0.02 0.05 0.1 0.15 0.1885 0.2 0.25" 
outnames = "0p01 0p02 0p05 0p1 0p15 0p1885 0p2 0p25" 
do for [i=1:2] { 
    set border 4 + 1         ## top (4) + bottom (1) 
    if (i = words(labeltitles)) {set border 8 + 4 + 1} ## right (8) + top (4) + bottom (1)} 
    set xlabel 'z = '.word(labeltitles,i) 
    set out word(outnames,i).'.eps' 
    plot 'data.dat' u (column(i+1)):1 w l lt 1 lw 7 lc rgb '#444444' 
} 

이 스크립트를 실행하면 마지막 플롯 만 출력됩니다. if 문에 주석을 달면 모든 플롯이 출력됩니다. 또한 else 문을 추가하려고 시도했지만 아무 것도 변경되지 않았습니다.

답변

1

오히려 고전적인 프로그래밍 오류 : 당신은 if 대신에 비교 (==) 대신에 과제가 있습니다. 그것은

if (i == words(labeltitles)) {set border 8 + 4 + 1} 
+0

이어야합니다. 그런데 왜 마지막 단계가 올바른 방식으로 실행되고 다른 단계는 실행되지 않는 것입니까? –

+0

무슨 뜻인지 모르겠다. 할당을 비교로 변경하면 잘 작동합니다 (1과 2를 제외한 모든 단어를 반복해야 함). – Christoph

+0

네, 정말 잘됩니다. 내 원본 파일에, 내가 마지막으로 언급 한 것은 무엇인가. 나는 단지 포럼을위한보다 쉬운 버전을 만들려고 노력했다. 정말 고마워. –

관련 문제