C#阵列矩阵
发布时间:2020-12-15 23:49:16 所属栏目:百科 来源:网络整理
导读:我正在用c#编写一个程序,它将12个元素的数组与一个三元组值相关联.我想将数据存储在维度[n,m,p]的矩阵中,但每个元素实际上是一个数组.现实世界的应用是为3D笛卡尔空间中的每个点节省12个传感器的输出. 我试过这样的事情: int[][,] foo = new int[12][,]; 但
我正在用c#编写一个程序,它将12个元素的数组与一个三元组值相关联.我想将数据存储在维度[n,m,p]的矩阵中,但每个元素实际上是一个数组.现实世界的应用是为3D笛卡尔空间中的每个点节省12个传感器的输出.
我试过这样的事情: int[][,] foo = new int[12][,]; 但是,如果我是对的,那么创建一个包含12个矩阵3×3的数组,而我想要一个12个元素数组的NxMxP矩阵. 如果我尝试像这样指定矩阵尺寸: int[][,] foo = new int[12][N,M,P]; 我收到错误CS0178(无效的排名说明符:expected’,’或’]’)和CS1586(数组创建必须具有数组大小或数组初始值设定项). 我还在学习c#,请原谅我这个琐碎的问题,但我无法解决这个问题.我正在使用visual studio 2015. 解决方法
如果你想创建12个组织为数组的[N,P]矩阵实例(请注意,int [] [,]是矩阵数组,而不是数组矩阵):
int[][,] foo = Enumerable .Range(0,12) .Select(_ => new int[N,P]) .ToArray(); 要么 int[][,] foo = Enumerable .Repeat(new int[N,P],12) .ToArray(); 如果你喜欢循环 // please,notice the different declaration: int[][,] foo = new int[12]; for (int i = 0; i < foo.Length; ++i) foo[i] = new int[N,P]; 编辑:如果你想要[N,P]数组矩阵(见注释):
// please,notice the different declaration: matrix of arrays int[,][] foo = new int[N,P][]; for (int i = 0; i < foo.GetLength(0); ++i) for (int j = 0; j < foo.GetLength(1); ++j) for (int k = 0; k < foo.GetLength(2); ++k) foo[i,j,k] = new int[12]; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |