확인. 나는 단순히 배열을 y
에 올바르게 지정하지 않았을 것이라고 생각합니다. I는 주석에서 설명한 바와 :
y(k) = x(i,j)
는 I로 표시되는 값을 저장 ONLY이다/J는 x
배열 좌표. y(k)
그 시간에 전체 배열 x
을 참조하기 위해서는
, 당신은 할 것 :
y(k) = x
을 그 여전히 작동하지 않는 경우, 아마도 다른 무언가가 잘못되었습니다. 여기에 baseArray
이라는 2x2 (기본 0) 배열이 있는데, 일부 값으로 명시 적으로 채우는 예제가 있습니다. i = 0 to itLimit
에서 반복하고 각 반복 내에서 배열의 항목을 반복하고 값에 2를 곱한 다음 배열 변수 tmpArray
에 저장합니다. 값을 변환 한 후에는 arrContainer
에 저장하고 다음 For i = 0 to itLimit
반복으로 진행합니다.
Sub FunWithArrays()
Dim itLimit As Integer '## Iteration limit.'
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim baseArray(2, 2) As Variant '## an example array.'
'## Put some dummy data in this array.'
baseArray(0, 0) = 1
baseArray(0, 1) = 65
baseArray(0, 2) = 13
baseArray(1, 0) = 14
baseArray(1, 1) = 29
baseArray(1, 2) = 44
baseArray(2, 0) = 9
baseArray(2, 1) = 16
baseArray(2, 2) = 33
Dim tmpArray(2, 2) As Variant '## This will temporarily hold values as we transform them.'
Dim arrContainer() As Variant '## an array of arrays, to store the iteration arrays.'
itLimit = 2 '## set a max iteration.'
For i = 0 To itLimit
'## Transform the base array somehow'
For j = LBound(baseArray, 1) To UBound(baseArray, 1)
For k = LBound(baseArray, 2) To UBound(baseArray, 2)
tmpArray(j, k) = baseArray(j, k) * 2
Next
Next
ReDim Preserve arrContainer(i)
arrContainer(i) = tmpArray
Next
Dim y As Variant
'## Now, refer to a single iteration stored in the arrContainer variable:
y = arrContainer(2)
End Sub
첫 번째 스크린 샷에서 나는 Locals
창을 사용하여 변수와 그 내용을 검토합니다. 첫번째 반복 후 tmpArray
채워되었음을 확인하고 baseArray
동일한 크기이지만 값 내에 2
가 arrContainer
변수를 검토하여 승산 된 수, 우리는 그것을 볼 항목이 하나 뿐이며 그 항목은 위의 반복에서 만든 tmpArray
과 같은 배열입니다.
마지막 반복 후, 우리는 arrContainer
을 검토하고 (우리 For i to itLimit
루프 당 0 ~ 2) 3 항목이 포함되어 있음을 볼 수 있습니다. arrContainer
안에있는 각 배열은 위의 반복에서 생성 된 배열 중 하나와 같습니다.
우리는 지금처럼, 이러한 항목을 참조 할 수 있습니다 :
때
y
을 검토 VBE의 지역 창을 사용하여 마지막으로Dim y as Variant
y = arrContainer(2) '# or any in bounds index could be used instead of "2"'
그리고 여러분은 여러분이'x (i, j)''i'와'j'는이 배열의 경계를 나타 냅니까? 또는'x'는 배열의 배열이고, 자식 배열 중 하나는 인덱스'(i, j)'로 식별됩니까? –
i와 j는 경계를 나타냅니다. 그래서 위의 예제에서 나는 x (1 to 3, 1 to 3)이 될 것이라고 생각한다. – Matt
위의 행렬에서 x (2,2)를 참조한다면, 좀 더 많은 정보를 얻을 수있다. 두 번째 행과 두 번째 열, 즉 5. 도움이되는지 아닌지 확실하지 않습니다. – Matt