0

Ich versuche, einen Sensorwert mit den in einem gezackten Array gespeicherten Werten zu vergleichen (26 gespeicherte Fälle, 5 Finger, 3d Vektor für jeden Finger) Wenn ich definiere die Werte für das Array, ich kann den Wert von Gesten [0] ohne Probleme setzen, aber sobald ich anfange, Gesten zu definieren [1], bekomme ich eine IndexOutOfRange Ausnahme.IndexOutOfRange Ausnahme beim Geben von Werten zu einem gezackten Array

Sind auch gezackte Arrays gut für diesen Zweck (Array von Arrays von 3D-Vektoren)?

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 }; 
     //... 
+1

Ich würde sagen, dass der Index außerhalb des Bereichs in die Zeile geworfen wird _gestures [0] [5] = new double [3] {-0.21,0.44.0.2} _ – Steve

Antwort

2

Das Problem ist in dieser Zeile

gestures[0][5] = new double[3] {-0.21,0.44,0.2} 

Sie einen Array definiert mit einer Länge von 5 (gestures[0] = new double[5][];)

So max Index 4 (0-4)

+0

Das löste es, der Compiler warf die Ausnahme auf die folgende Zeile, also das war was Konfu sed mich. –

Verwandte Themen