helscanintrlv

Переупорядочить символы по спиральному шаблону

Синтаксис

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 во временной матрице.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.
Представлено до R2006a