circshift

Циклический сдвиг массива

Синтаксис

Y = circshift(A,K)
Y = circshift(A,K,dim)

Описание

пример

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 th элемент в K задает сумму сдвига для N th размерность в A. Если N th элемент в K положителен, то значения сдвига A к концу N th размерность. Если N th элемент отрицателен, то сдвиг значений к началу.

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

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

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

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

Смотрите также

| | |

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