Восстановите упорядоченное расположение символов в спиральном шаблоне
deintrlvd = helscandeintrlv(data,Nrows,Ncols,hstep)
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
, оставляет данные без изменений.
Команда ниже перестраивает вектор с помощью временной матрицы 3 на 4 и диагоналей наклона 1.
d = helscandeintrlv(1:12,3,4,1) d = Columns 1 through 10 1 10 7 4 5 2 11 8 9 6 Columns 11 through 12 3 12
Внутренне, функция создает временную матрицу 3 на 4
[1 10 7 4; 5 2 11 8; 9 6 3 12]
использование длины четыре диагонали. Функция затем отправляет элементы, строку строкой, к выводу d
.