Переупорядочьте символы в спиральном шаблоне
intrlvd = helscanintrlv(data,Nrows,Ncols,hstep)
intrlvd = helscanintrlv(data,Nrows,Ncols,hstep)
перестраивает элементы в data
путем заполнения временной матрицы со строкой элементов строкой и затем отправки матричного содержимого в вывод спиральным способом. Nrows
и Ncols
являются размерностями временной матрицы. hstep
является наклоном диагонали, то есть, суммы, которой увеличивается индекс строки, как индекс столбца увеличивается одним. hstep
должен быть неотрицательным целым числом меньше, чем Nrows
.
Спиральный вид означает, что функция выбирает элементы по диагоналям временной матрицы. Числом элементов в каждой диагонали является точно Ncols
, после того, как функция перенесется мимо ребер матрицы при необходимости. Функция пересекает диагонали так, чтобы индекс строки и индекс столбца оба увеличения. Каждая диагональ после первой начинает одну строку ниже первого элемента предыдущей диагонали.
Если data
является вектором, он должен иметь элементы Nrows*Ncols
. Если data
является матрицей с несколькими строками и столбцами, data
должен иметь строки Nrows*Ncols
и функциональные процессы столбцы независимо.
Команда ниже перестраивает вектор с помощью диагоналей двух различных наклонов.
i1 = helscanintrlv(1:12,3,4,1) % Slope of diagonal is 1. i2 = helscanintrlv(1:12,3,4,2) % Slope of diagonal is 2.
Вывод ниже.
i1 = Columns 1 through 10 1 6 11 4 5 10 3 8 9 2 Columns 11 through 12 7 12 i2 = Columns 1 through 10 1 10 7 4 5 2 11 8 9 6 Columns 11 through 12 3 12
В каждом случае функция внутренне создает временную матрицу 3 на 4
[1 2 3 4; 5 6 7 8; 9 10 11 12]
Чтобы сформировать i1
, функция формирует каждый наклон одна диагональ путем перемещения вниз одной строки и одного столбца направо. Первая диагональ содержит 1
, 6
, 11
и 4
, в то время как вторая диагональ запускается с 5
, потому что это ниже 1
во временной матрице.
Чтобы сформировать i2
, функция формирует каждый наклон две диагонали путем перемещения вниз двух строк и одного столбца направо. Первая диагональ содержит 1
, 10
, 7
и 4
, в то время как вторая диагональ запускается с 5
, потому что это ниже 1
во временной матрице.