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 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