2016-03-12 103 views
0

我創建了一個二維數組:3列和222行(請參閱代碼)。現在我想插入第一行0,0,0。我怎樣才能做到這一點。在二維數組中插入變量

到目前爲止,我有這樣的:

public float[,] arrayPosSpheres = new float[222, 3]; 

//array row one with zeros 
arrayPosSpheres [0] = [0,0,0]; 

後來我想有機會獲得這個數值在我的陣列。所以例如第一行和第二列。我該怎麼做?

編輯:

// Update is called once per frame (ORIGINAL) 
void Update() 
{ 
    int initialpos = 10; 
    //create an array with 3 columns (x,y,z) and numberOfPoints rows 
    //Vector3[] arrayPosSpheres=new Vector3[(int)(20/(sizeSphere*overlay))]; 

    for (int j = 0; j < 221; j++) 
    { 
     arrayPosSpheres [j] = arrayPosSpheres [j + 1]; 
    } 

    float functionXvalue = 221 * scaleInputRange/222; 
    if (animate) 
    { 
     functionXvalue += Time.time * animSpeed; 
    } 

    arrayPosSpheres [221]= Vector3 (functionXvalue,ComputeFunction(functionXvalue)*scaleResult,0); 

    for (int i = 0; i < 221; i++) 
    { 
     arrayPosSpheres [i] = arrayPosSpheres [i + 1]; 
    } 

    for (int m = 221; m = 0; m--) 
    { 
     for (int q = 0; q < 3; q++) 
     { 
      // access of x,y and z values of sphere 221 
      plotPoints[m].transform.position = arrayPosSpheres[m][q]; 
     } 
    } 
} 
+0

您可能想要指定您正在使用的語言。我爲一個不認識的數組語法。 –

+1

對不起。我使用c#。更確切地說,Unity中的c#。 – sportente

+0

一旦將數組創建爲數字(本例中爲float)類型,數組中的所有值都已爲0,因此除非已包含值並且要重置該值,否則不需要這樣做。 – ehh

回答

0

謝謝您的回答。我想我需要兩個循環,一個用於訪問行,一個用於訪問列。

會像這樣是正確的:

// 
public float[,] arrayPosSpheres = new float[222, 3]; 


GameObject[] plotPoints; 


// Use this for initialization 
void Start() { 

    //array row one with zeros 
    arrayPosSpheres [0][0] = 0; 
    arrayPosSpheres [0][1] = 0; 
    arrayPosSpheres [0][2] = 0; 


    //fill whole array with zeros 
    for (int k = 1; k <= 221; k++) { 

     for (int s = 1; s <= 3; s++) { 

      arrayPosSpheres [k] [s] = arrayPosSpheres [k - 1] [s - 1]; 

     } 


    } 

我的目標是像我說的零有第一排。然後我會根據第一行中的零填充我的數組中的零。

+0

我明白你對for循環做了什麼。但是如何繼續使用兩個循環來填充我的數組中0行的零? – sportente

+0

我希望只有球體222正在以正弦波方式移動,其他所有球體都將爲球體t-1的位置。你明白我的意思嗎?對不起,這些解釋... – sportente