Я думаю, что единственный способ сделать это - написать свою собственную функцию ветра / раскрутки в непрерывном хранилище данных. Другими словами, вам придется написать свою собственную карту, чтобы рассчитать позицию хранения ваших значений.
Если вы пытаетесь сделать определенный обход вашего массива более эффективным, вы всегда можете преобразовать входящую матрицу до того, как поместите ее в массив, а затем снова выполните преобразование, когда вы получите его , Многомерные массивы в стиле C упорядочены по порядку, так что математика может быть немного хитрой (и это выходит за рамки того, что я могу подробно описать здесь за то время, что у меня есть).
Извините за отсутствие лучшего ответа, но я надеюсь, что это поможет