circshift

Сдвиньте массив циклически

Описание

пример

Y = circshift(A,K) кругово смещает элементы в массиве A по K положения. Если K является целым числом, тогда circshift сдвиги по первой размерности A чей размер не равен 1. Если K является вектором целых чисел, затем каждый элемент K указывает величину сдвига в соответствующей размерности A.

Примечание

Поведение по умолчанию circshift(A,K) где K - скаляр, измененный в R2016b. Чтобы сохранить поведение R2016a и предыдущих релизов, используйте circshift(A,K,1). Этот синтаксис задает 1 как размерность для работы.

пример

Y = circshift(A,K,dim) кругово смещает значения в массиве A по K положения вдоль размерной dim. Входные параметры K и dim должно быть скалярами.

Примеры

свернуть все

Создайте числовой вектор-столбец.

A = (1:10)'
A = 10×1

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10

Использование circshift переместить элементы на три положения.

Y = circshift(A,3)
Y = 10×1

     8
     9
    10
     1
     2
     3
     4
     5
     6
     7

Результат, Y, имеет те же элементы, что и A но они находятся в другом порядке.

Создайте массив символов и используйте circshift для сдвига символов на 3 позиции. Символы находятся в другом порядке в Y.

A = 'racecar';  
Y = circshift(A,3)
Y = 
'carrace'

Создайте числовой массив с кластером таковых в верхней левой верхней части.

A = [1 1 0 0; 1 1 0 0; 0 0 0 0; 0 0 0 0]
A = 4×4

     1     1     0     0
     1     1     0     0
     0     0     0     0
     0     0     0     0

Использование circshift для сдвига каждой строки A одно положение вправо.

Y = circshift(A,1,2)
Y = 4×4

     0     1     1     0
     0     1     1     0
     0     0     0     0
     0     0     0     0

Сдвиньте элементы A по одной позиции в каждой размерности. Кластер таковых теперь находится в центре матрицы.

Y = circshift(A,[1 1])
Y = 4×4

     0     0     0     0
     0     1     1     0
     0     1     1     0
     0     0     0     0

Чтобы переместить кластер назад в его исходное положение, используйте circshift на Y с отрицательными значениями сдвига. Матрица X эквивалентно A.

X = circshift(Y,[-1 -1])
X = 4×4

     1     1     0     0
     1     1     0     0
     0     0     0     0
     0     0     0     0

Входные параметры

свернуть все

Входной массив, заданный как векторный, матричный или многомерный массив.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | struct | table | cell
Поддержка комплексного числа: Да

Сумма сдвига, заданная как целочисленный скаляр или вектор целых чисел.

  • Если вы задаете K в виде целого числа и не задавать dim, затем circshift сдвиги по первой размерности, размер которых не равен 1. Положительное K сдвиги к концу размерности и отрицательные K смещается к началу.

  • Если вы задаете K как вектор целых чисел, затем N-й элемент в K задает величину сдвига для N-го размерности в A. Если N-й элемент в K положительно, тогда значения A сдвиг к концу N-го размерности. Если N элемент отрицателен, значения смещаются к началу.

Если величина сдвига больше длины соответствующей размерности в Aзатем сдвиг циклически оборачивается к началу этой размерности. Например, смещение вектора с 3 элементами на + 3 положения возвращает его элементы в их исходные положения.

Размерность для работы, заданная как положительный целочисленный скаляр Если значение не задано, по умолчанию это первая размерность, не равный 1. Если вы задаете dim, затем K должен быть целочисленным скаляром. В целом задайте dim = 1 для обмена строками, dim = 2 для обмена столбцами и так далее.

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

.

Генерация кода GPU
Сгенерируйте код CUDA ® для графических процессоров NVIDIA ® с помощью GPU Coder™

.

См. также

| | |

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