Hi,
assumed, I need the size of a dynamic array for further processing, which is unknown at compile time. Below are my example, which doesn't work and two alternatives.

Alternative1: may create large rowT-arrays depending on original array size. Alternative2: overrides rowT after exiting the inner loop (which may be costly?)

How could I implement something like the first approach?

Thanks!

// Not working example of transposing a matrix
double[][] transp(double[][] array)
{
  double[][] arrayT;
  double[array[0].length] rowT;
  foreach(col; 0..array[0].length)
  {
    foreach(row; array)
    {
      rowT[col]= row[col];
    }
    arrayT ~= rowT;
  }
  return arrayT;
}

// Alternative1
  double[][] arrayT;
  double[] rowT;
  foreach(col; 0..array[0].length)
  {
    foreach(row; array)
    {
      rowT ~= row[col];
    }
    arrayT ~= rowT[$-6..$];
  }

// Alternative2
  double[][] arrayT;
  foreach(col; 0..array[0].length)
  {
    double[] rowT;
    foreach(row; array)
    {
      rowT ~= row[col];
    }
    arrayT ~= rowT;
  }

Reply via email to