2014-01-07 5 views
0

두 개의 테이블을 설정했습니다.For 루프의 If 루프 설정

표 = [0, 1, 2, 3, 4, 5]

표 모두 수행하는 것을 시도하고

가 = [554, 543, 554, 544, 564, 553]

인 2 1 다음

(1) 나는, 표 1의 값을 읽어, 다음 표에서 동일한의 인덱스를 식별 할 2.

그래서 예를 들어 표 1 [0] = 0이므로 표 2 [Table1 [0]] = 554

(2) 주어진 표 1의 값에서 표 2 전체를 살펴보고 A = 541보다 작거나 B = 553보다 큰 값을 추가합니다 그에 따라 해당 값을 다른 테이블에 저장하십시오. I는 표 1을 읽으면서

는, I [0] = 0 표, I는 표 2의 값이 될 때마다 정지하고 추가 다음 표 2 내 인덱스 등이 0을 진행하고 표 2의 전체를 읽을 이후 진행 시작 < A 또는> B

예를 들어, Table1 [1] = 1 ->로 시작하면 Table2 [1] 다음의 모든 값을 읽습니다. Table2 [2] = 554, ... 이 경우, Table2 [1] 이후의 첫 번째 값은> B 인 554이므로 다른 테이블에 추가하고 다음 값인 Table2 [3] = 544를 B보다 작지 않게 유지합니다 A보다 무시하고 처리합니다.

내 코드는 다음과 같습니다. 그러나 무엇이 잘못 될지 확실하지 않습니다. 나는 이고르 환경을 사용하고 있지만, 코드가 꽤 많이 읽을 수 C++와 같은 것입니다 :

Function Trial(Data1, Data2) 
//Waves are just the tables that contain the data. Data1 = Table1, Data2 = Table2 

Wave Data1 
Wave Data2 

Variable A = 541; 
Variable B = 553; 
Variable i, j, k 
Variable XScale, Invalid 
Variable numPoints = numpnts(Data1) //Number of Points in the array 
Variable numPoints2 = numpnts(Data2) 

for(i=0; i<numPoints; i+=1) 
    XScale = Data1[i] 
    Wave TrialCrossingA, TrialCrossingB 
    Make /N=(numPoints2)/O TrialCrossingA, TrialCrossingB 
    //Makes new tables to append required values 
    for(j=Xscale; j<numPoints2; j+=1) 
      If(Data2[j] <= Xa) 
       TrialCrossingA[i] = XScale 
      Elseif(Data2[j] >= Xb) 
       TrialCrossingB[i] = XScale 
      Endif 
    endfor 
endfor 

End 

답변

0

난 당신이 여기에 실수를 생각

for(j=Xscale; j<numPoints2; j+=1) 
      If(Data2[j] <= Xa) // This is supposed to be Data2 I guess ? 
       TrialCrossingA[i] = XScale 
      Elseif(Data2[j] >= Xb) // This is supposed to be Data2 I guess ? 
       TrialCrossingB[i] = XScale 
      Endif 
    endfor 
+0

아, 미안하지만 오타가 잘못되었습니다. 그 코드는 변경되었지만 코드는 여전히 작동하지 않습니다. :( –

+0

내가 언급 한 오타를 편집했습니다. –

0

코드를 여기에 컴파일되지 않습니다. 변수 XaXb은 정의되지 않습니다.