例如有4个波段的数组,每个数组是有4000000个元素,现在想要把4个波段的放在一个数组里,即4维的。用来显示图像的。
------解决思路----------------------
这个谁能算是二维吧, 也就是一维数组,但是每个item还是数组
int[,] array = new int[4, 4000000];
初始化可以类似于这样
// Two-dimensional array.
int[,] array2D = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
参考:
Multidimensional Arrays (C# Programming Guide)
https://msdn.microsoft.com/en-us/library/2yd9wwz4.aspx
------解决思路----------------------
"n元立方“的那个数据结构叫做 Tuple。
在c#中的数组最多只支持2维的,是用来简单支持矩阵运算的。
------解决思路----------------------
你说四维就四维吧,按你的要求在.net里别说四维,四十四百都行啊,一楼给的是一种二维的,那是c#里真正的二维的。
还有几种你可以参考一下
锯齿数组:int[][] arr; 你有四组,譬如取第一组数组的第10000个索引的值就是arr[0][10000];
List<T>类型,List<int[]> list里头,取值list[0][10000];
Dictionary类型Dictionary<int, int[]> dic,取值dic[0][10000];
元祖Tuple<int[], int[], int[], int[]> tp,取值tp.Item1[10000];
当然还有其他的,上面这些都是最常用的。
------解决思路----------------------
其实你给出的连接中说的很清楚了
你 得到的4个单波段的数组arc1,arc2,arc3,arc4 实际上是作为伪彩 RGB 图片的 亮度(透明度)、红、绿、蓝通道出现的
所以即便 new float[,]{{arc1},{arc2},{arc3},{arc4}} 不出错的话,也不是你期望的结果
你需要的是
new float[,]{
arc1[0], arc2[0], arc3[0], arc4[0] },
arc1[0], arc2[1], arc3[1], arc4[1] },
arc1[0], arc2[2], arc3[2], arc4[2] },
....
arc1[n], arc2[n], arc3[n], arc4[n] },
};
这样的数据组织方案