helscandeintrlv

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

Описание

пример

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 оставляет данные без изменений.

Примеры

свернуть все

Примените спиральное перемежение скана к вектору [1:12], переставив вектор с помощью временной матрицы 3 на 4 и диагонали наклона 1.

Внутренне, helscandeintrlv функция создает временную матрицу 3 на 4 с использованием четырех диагоналей. Как представлено здесь.

[1 10  7  4;
 5  2 11  8;
 9  6  3 12]
ans = 3×4

     1    10     7     4
     5     2    11     8
     9     6     3    12

Затем функция отправляет элементы, строка за строкой, в выход d.

d = helscandeintrlv(1:12,3,4,1)
d = 1×12

     1    10     7     4     5     2    11     8     9     6     3    12

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

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

.

См. также

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