Guyes, I obviously made a mistake. Forget my post!

Sorry, I'm still really confused with the results from my function:

double[][] transp(double[][] array)
{

  double[][] arrayT;
  double[] rowT;
  // initialize rowT
  foreach(i; 0..array.length)
  {
    rowT ~= 0;
  }

  foreach(col; 0..array[0].length-3)
  {
    foreach(row; 0..array.length)
    {
      rowT[row] = array[row][col];
    }
    writeln("rowT 1: ",rowT);
    writeln("arrayT 1: ", arrayT);
    arrayT ~= rowT;
    writeln("rowT 2: ",rowT);
    writeln("arrayT 2: ", arrayT,"\n");
  }
    return arrayT;
}

Again, assuming my original array to be:
  array =
    [
      [ 4,  3,   1,   5,  2],
      [19, 34,  23, 100, 59],
      [62,  1,   4,   0, 76],
      [23,  6, 989,  98,  1],
      [ 5, 87,  45,  62,  9],
      [ 5, 87,  45,  62,  9]
    ];

... the results are strange. Before the appending (arrayT ~= rowT;) happens for the second column of array arrayT was miraculous modified:

rowT 1: [4, 19, 62, 23, 5, 5]
arrayT 1: []
rowT 2: [4, 19, 62, 23, 5, 5]
arrayT 2: [[4, 19, 62, 23, 5, 5]]

rowT 1: [3, 34, 1, 6, 87, 87]
arrayT 1: [[3, 34, 1, 6, 87, 87]]
rowT 2: [3, 34, 1, 6, 87, 87]
arrayT 2: [[3, 34, 1, 6, 87, 87], [3, 34, 1, 6, 87, 87]]

etc...

Is there any linkage between rowT and arrayT????

Thanks again!

Reply via email to