我有一个多维矩阵,其维数可以大于1。寻找可以访问矩阵中每个点的高效算法。访问N(未知)维矩阵中所有点的算法
关于代码的一些信息: 该矩阵具有类似的值存取权(虽然这些并不真正相关)。
object value = matrixInstance.GetValue(int[] point);
matrixInstance.SetValue(object value, int[] point);
注意:参数点是索引的阵列,并且必须匹配尺寸#或抛出异常。
int numDims = matrixInstance.Rank; //# dimensions
int sizeDim = matrix.getRankSize(int index); // length of specified dimension
我想遍历使用相对高效的算法,矩阵的所有可能的点:
关于矩阵结构的信息可以通过囊括。
例如,在2×3 2D矩阵以下六个点会被访问:
[0,0] [0,1] [0,2] [1,0] [1,1 ] [1,2]
该算法必须工作到N维:2,3,4等。为了提高效率,我最终会使用C# iterator来返回积分。
我最终使用递归函数,然后将其转换为基于堆栈的实现,如您所述。不过,我从头开始编写代码,以便您的代码保持未经测试。 – 2010-09-03 03:50:55