【发布时间】:2014-01-27 15:42:33
【问题描述】:
我想用以下数组填充一个三维数组:
double[] y11 = new double[7] { 24, 13.3, 12.2, 14, 22.2, 16.1, 27.9 };
double[] y12 = new double[7] { 3.5, 3.5, 4, 4, 3.6, 4.3, 5.2 };
double[] y21 = new double[7] { 7.4, 13.2, 8.5, 10.1, 9.3, 8.5, 4.3 };
double[] y22 = new double[7] { 3.5, 3, 3, 3, 2, 2.5, 1.5 };
double[] y31 = new double[5] { 16.4, 24, 53, 32.7, 42.8 };
double[] y32 = new double[5] { 3.2, 2.5, 1.5, 2.6, 2 };
double[] y41 = new double[2] { 25.1, 5.9 };
double[] y42 = new double[2] { 2.7, 2.3 };
例如 y12 表示第 1 组中的数组,第 2 列等。所以我有 4 个组,每个组有 2 列。
public class Matrix
{
double[, ,] matrix;
public void Initial(int groupSize, int columnSize, int valueSize)
{
matrix = new double[groupSize, columnSize, valueSize];
}
}
我需要一个简单灵活的矩阵加法,而不是像matrix[1][2][3] = value;那样分配每个值
这个我试过了,还是不行
public void Add(double[] columnArray, int groupIndex, int columnIndex)
{
matrix[i, y] = columnArray;
}
【问题讨论】:
-
如果您将其设为
double[,][] matrix;,您可以使用单个分配,但这是一个浅拷贝。不同的尺寸似乎也需要这个。 -
@HenkHolterman 我很困惑哪个和哪个,
[groupSize][columnSize, valueSize]这样? -
[组、列][valueIndex]
-
伙计们,请有人给我一个正确的答案,我仍然在
matrix = new double[groupSize, columnSize][valueSize];上遇到错误:Invalid rank specifier: expected ',' or ']' -
它是
double[groupSize, columnSize][]或者double[][groupSize, columnSize]。您无法一次性设置。
标签: c# arrays matrix multidimensional-array