두 개의 테이블을 설정했습니다.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
아, 미안하지만 오타가 잘못되었습니다. 그 코드는 변경되었지만 코드는 여전히 작동하지 않습니다. :( –
내가 언급 한 오타를 편집했습니다. –