【发布时间】:2013-04-21 12:52:26
【问题描述】:
所以我想创建一个数组数组,根据我收集到的数据,我需要一个锯齿状数组。
我有一个数组 x(i,j),它定义了一个 nxn 整数矩阵。对于 k 的每次迭代,该数组中的两个整数值被交换以尝试改进矩阵 x(i,j)。我需要在每次 k 迭代后创建一个数组来存储这个矩阵 x(i,j)。
为了澄清,说我有没有
1 2 3
4 5 6
7 8 9
然后我执行了一次迭代,交换了数组中的两个元素:
7 2 3
4 5 6
1 8 9
我希望能够将这些数组存储在一个数组中,以便随时调用。我在这里尝试了一个解决方案:
Dim y() As Variant 'Declare as a variant to contain arrays
ReDim y(1 To IterationLimit) 'This will be the jagged array
For k = 1 To IterationLimit
'Some code goes here for the swap
y(k) = x(i,j)
next k
现在说我想要第 85 次迭代。我希望能够输入 y(85) [或类似的] 来提取特定时间的矩阵 x(i,j)。
希望我已经解释得足够好。任何帮助表示赞赏,我真的坚持这一点。
编辑:删除的代码
【问题讨论】:
-
当你说你有数组
x(i,j)时,i和j代表这个数组的边界吗?还是x是一个数组数组,其中一个子数组由索引(i,j)标识? -
i 和 j 确实代表边界是的。所以对于上面的例子,我认为是 x(1 to 3, 1 to 3)
-
为了给您更多信息,如果我要从上面的矩阵中引用 x(2,2),这将采用第二行和第二列中的值,即 5。不是确定这是否有帮助。
-
好的,所以当您执行
y(k) = x(i,j)时发生的情况是您仅将y(k)存储为单个值(由 i/ 表示的 itmex数组中的 j 个坐标)。 -
如果您希望能够通过
y(k)提取整个 数组,那么您只需在迭代期间执行y(k) = x。
标签: vba excel jagged-arrays