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