【发布时间】:2012-06-11 19:36:13
【问题描述】:
我的目标是做一个三元循环来乘以矩阵 X 矩阵,我输入矩阵,我必须得到矩阵^2。
当我调试以下代码时,我收到错误“IndexOutOfRangeException” - 索引超出了数组的范围:
for (int i = 1; i < nodeList.Count+1; i++)
{
for (int j = 1; j < nodeList.Count+1; j++)
{
result[i, j] = "0";
for (int k = 1; k < nodeList.Count+1; i++)
{
if ((matrix[i, k] != null) && (matrix[k, j] != null))
{
n1 = Convert.ToInt32(matrix[i, k]);
n2 = Convert.ToInt32(matrix[k, j]);
n3 = Convert.ToInt32(result[i, j]);
total = n3 + n1 * n2;
_total = total.ToString();
result[i, j] = _total;
}
}
}
}
变量在哪里: 1. String[,] 类型的矩阵,维数为 (nodelist+1,nodelist+1) 2.result 是矩阵的相同类型和维度,我想把结果矩阵放在哪里 3.nodelist 是我在图中的节点名称的数组 4. n1,n2,n3 是 int,我将矩阵中的 convert int 放入其中 5.total是乘法运算的结果 6._total 将结果矩阵的总 int 转换为总字符串
所以我为每个数组和矩阵设置了正确的维度,但我总是遇到同样的错误。我不明白为什么。可以请人帮忙注意错误,因为我没有看到它。
【问题讨论】:
-
在此处发布之前,我确定您在调试器中运行了此程序,并逐步执行,直到出现异常,并检查了您的变量。正确的?真的吗?
标签: c# matrix indexoutofboundsexception