Восстановление порядка символов в спиральном шаблоне
deintrlvd = helscandeintrlv(data,Nrows,Ncols,hstep) переставляет элементы в data заполнением временной матрицы элементами по спирали и последующей отправкой содержимого матрицы в выходную строку по строкам. Nrows и Ncols - размеры временной матрицы. hstep - наклон диагонали, то есть величина, на которую увеличивается индекс строки при увеличении индекса столбца на единицу. hstep должно быть неотрицательным целым числом менее Nrows.
Спиральный вид означает, что функция размещает входные элементы вдоль диагоналей временной матрицы. Количество элементов в каждой диагонали точно Ncols, после того, как функция обернется за края матрицы, когда это необходимо. Функция пересекает диагонали так, что индекс строки и индекс столбца увеличиваются. Каждая диагональ после первой начинается на один ряд ниже первого элемента предыдущей диагонали.
Если data является вектором, он должен иметь Nrows*Ncols элементы. Если data - матрица с несколькими строками и столбцами, data должен иметь Nrows*Ncols строки и функция обрабатывают столбцы независимо.
Использование этой функции в качестве инверсии helscanintrlv функция, использовать то же самое Nrows, Ncols, и hstep входы в обе функции. В этом случае две функции являются обратными в том смысле, что применение helscanintrlv за которым следует helscandeintrlv оставляет данные без изменений.