Вы не можете. Это указатель на память. Данные двумерного массива упорядочены таким образом, что последнее измерение находится в последовательности, в точках расположения, расположенных позади друг друга.
Когда вы получаете указатель, вы следите за памятью так, как она заполнена.
Если вы хотите читать данные по другому измерению, вам нужно будет шаг за шагом, пропуская каждую строку.
public unsafe static void testFunction()
{
uint[,] array2D = new uint[10, 100];
for(int x=0;x<100;x++)
{
for(int y=0;y<10;y++)
array2D[y,x] = (uint)(1000u*y+x);
}
// read some data along first dimension.
fixed (uint* fixedInput = &array2D[1,90])
{
for(int j=0;j<5;j++)
System.Console.WriteLine(string.Format("{0}",fixedInput[j*100]));
}
Данные из массива выборок располагаются в памяти таким образом:
0 1 2 3 4 [...] 99 1000 1001 1002 [...]