我试图将此矩阵作为参数传递:
double[,] array2 = new double[4, 5]
{
{ 45, -6, 8, -3, 48 },
{ 0, -56.733333, 3.6444444, -6.8666667, 26.8666667 },
{ 0, 0, 78.17111712, -15.2432, -133.378378},
{ 0, 0, 0, 94.190193, 319.457667}
};
但是当我尝试在其他功能中使用它时,我会遇到超出范围的问题,我不知道我做错了什么,因为我使用的是我在创建时指定的相同范围objetc double [,]我使用下一个代码:
传递矩阵:
Example1 a = new Example1();
a.function(array2,4,5);
使用该功能:
public double[] function(double[,] nn, int n, int m)
{
double[,] ma = new double[n, m];
ma = nn;
double[] x = new double[5] { 0, 0, 0, 0, 0 };
x[n] = ma[n, m] / ma[n, n];
return x;
}
当我尝试使用ma [n,m] / ma [n,n]时我得到错误而且我不知道为什么会发生因为ma [n,m]它恰好存在并且ma [n,n]碰巧存在。
答案 0 :(得分:1)
如有疑问,请阅读文档
数组概述
数组具有以下属性:
数组可以是单维,多维或锯齿状。
创建数组实例时,将建立维度数和每个维度的长度。这些值不可能 在实例的生命周期中发生了变化。
数值数组元素的默认值设置为零,引用元素设置为null。
锯齿状数组是一个数组数组,因此它的元素是引用类型,并初始化为null。
数组已归零:具有
n
元素的数组从0
索引到n-1
。数组元素可以是任何类型,包括数组类型。
数组类型是从抽象基类型Array派生的引用类型。由于此类型实现了
IEnumerable
和IEnumerable<T>
,因此 可以在C#中的所有数组上使用foreach迭代。
进一步阅读
答案 1 :(得分:0)
问题是矩阵不能识别双[4,5]原因,当声明从[0..3]取4个空格而[4,#]将占用5个空格。