KCh*_*oux 5 c# matrix multidimensional-array
我的代码中有一个部分需要反转矩阵.这只能合理地在方形矩阵上完成,在这种情况下是3×3方阵.我用来反转矩阵的工具一直说我的阵列不是一个正确的方块.
所以我做了一点测试:
double[,] x = new double[3, 3];
MessageBox.Show(x.GetLength(0).ToString());
MessageBox.Show(x.GetLength(1).ToString());
MessageBox.Show(x.GetLength(2).ToString());
Run Code Online (Sandbox Code Playgroud)
第一个出现为"3".第二个出现为"3".第三个出现了IndexOutOfRangeException.我只是忽略了一些非常明显的东西或......这有点奇怪吗?
(注意:这是使用.Net 2.0的C#代码)
LBu*_*kin 11
您只有一个包含两个维度的数组.为什么你会期望要求第三维的大小给你一个有效的结果?
该Array.GetLength()方法返回Array指定维度中的元素数.在你的情况下:
x.GetLength(2).ToString(); // asking for size of third dimension
Run Code Online (Sandbox Code Playgroud)
你问的是二维数组它的第三维尺寸是多少.结果是IndexOutOfRangeException.这是预期的行为.
在您的代码示例中,您可能会将每个声明维度的大小与维度数量混淆.以下是不同尺寸的矩形阵列的一些示例:
var d1 = new int[5]; // one dimensional array, containing 5 elements
var d2 = new int[3,3]; // two-dimensional 3x3 element array
var d3 = new int[2,2,2]; // three-dimension array of 2x2x2 elements
var d4 = new int[2,5,6,8]; // four dimensional array, of 2x5x6x8 elements
Run Code Online (Sandbox Code Playgroud)
看模式?维数由以下因素决定多少个号码,你在数组声明中指定.每个维度的大小由声明中每个数字的值确定.
| 归档时间: |
|
| 查看次数: |
620 次 |
| 最近记录: |