为锯齿状数组赋值时出现 IndexOutOfRange 异常
IndexOutOfRange exception when giving values to a jagged array
我正在尝试将传感器值与保存在锯齿状数组中的值进行比较(26 种保存的可能情况,5 个手指,每个手指的 3d 矢量)
当我定义数组的值时,我可以毫无问题地设置 gestures[0] 的值,但是一旦我开始定义 gestures[1],
我收到 IndexOutOfRange 异常。
此外,锯齿状数组是否适用于此目的(3d 向量数组的数组)?
public class Signs
{
public static double[][][] gestures = new double[26][][];
public void Define()
{
gestures[0] = new double[5][];
gestures[0][0] = new double[3] { 0.15, 0.97, -0.21 };
gestures[0][1] = new double[3] { -0.56, -0.81, -0.18 };
//...
gestures[0][5] = new double[3] {-0.21,0.44,0.2}
gestures[1] = new double[5][]; //IndexOutOfRange exception
gestures[1][0] = new double[3] { 0.21, 0.96, -0.21 };
gestures[1][1] = new double[3] { 0.19, 0.96, 0.21 };
//...
问题出在这一行
gestures[0][5] = new double[3] {-0.21,0.44,0.2}
您定义了一个长度为 5 的数组 (gestures[0] = new double[5][];
)
所以最大索引是 4 (0-4)
我正在尝试将传感器值与保存在锯齿状数组中的值进行比较(26 种保存的可能情况,5 个手指,每个手指的 3d 矢量) 当我定义数组的值时,我可以毫无问题地设置 gestures[0] 的值,但是一旦我开始定义 gestures[1], 我收到 IndexOutOfRange 异常。
此外,锯齿状数组是否适用于此目的(3d 向量数组的数组)?
public class Signs
{
public static double[][][] gestures = new double[26][][];
public void Define()
{
gestures[0] = new double[5][];
gestures[0][0] = new double[3] { 0.15, 0.97, -0.21 };
gestures[0][1] = new double[3] { -0.56, -0.81, -0.18 };
//...
gestures[0][5] = new double[3] {-0.21,0.44,0.2}
gestures[1] = new double[5][]; //IndexOutOfRange exception
gestures[1][0] = new double[3] { 0.21, 0.96, -0.21 };
gestures[1][1] = new double[3] { 0.19, 0.96, 0.21 };
//...
问题出在这一行
gestures[0][5] = new double[3] {-0.21,0.44,0.2}
您定义了一个长度为 5 的数组 (gestures[0] = new double[5][];
)
所以最大索引是 4 (0-4)