【发布时间】:2011-04-03 08:57:36
【问题描述】:
我有一个多维矩阵,它的维数可以大于一。寻找一种可以访问矩阵中每个点的高效算法。
关于代码的一些信息: 该矩阵具有类似的值访问器(尽管这些并不真正相关)。
object value = matrixInstance.GetValue(int[] point);
matrixInstance.SetValue(object value, int[] point);
注意:参数 point 是索引数组,必须匹配 # 个维度,否则会引发异常。
可以通过以下方式获取有关矩阵结构的信息:
int numDims = matrixInstance.Rank; //# dimensions
int sizeDim = matrix.getRankSize(int index); // length of specified dimension
我想使用相对有效的算法迭代矩阵的所有可能点。
例如,在 2x3 2D 矩阵中,将访问以下六个点:
[0,0]
[0,1]
[0,2]
[1,0]
[1,1]
[1,2]
算法必须工作到 N 维:2、3、4 等。为了提高效率,我最终将使用C# iterator 来返回积分。
【问题讨论】:
标签: c# algorithm c#-3.0 matrix traversal