Main Content

circshift

Desplazar un arreglo de forma circular

Descripción

ejemplo

Y = circshift(A,K) desplaza de forma circular los elementos del arreglo A K posiciones. Si K es un entero, circshift se desplaza en la primera dimensión de A cuyo tamaño no es igual a 1. Si K es un vector de enteros, cada elemento de K indica la cantidad de desplazamiento en la dimensión correspondiente de A.

Nota

El comportamiento predeterminado de circshift(A,K), donde K es un escalar, cambió en la versión R2016b. Para conservar el comportamiento de la versión R2016a y versiones anteriores, utilice circshift(A,K,1). Esta sintaxis especifica 1 como la dimensión en la que operar.

ejemplo

Y = circshift(A,K,dim) desplaza de forma circular los valores del arreglo A K posiciones en la dimensión dim. Las entradas K y dim deben ser escalares.

Ejemplos

contraer todo

Cree un vector columna numérico.

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

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10

Utilice circshift para desplazar los elementos tres posiciones.

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

     8
     9
    10
     1
     2
     3
     4
     5
     6
     7

El resultado Y tiene los mismos elementos que A, pero en diferente orden.

Cree un arreglo de caracteres y utilice circshift para desplazar los caracteres 3 posiciones. Los caracteres están en un orden diferente en Y.

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

Cree un arreglo numérico con un grupo de unos en la parte superior izquierda.

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

Utilice circshift para desplazar cada columna de A una posición a la derecha.

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

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

Desplace los elementos de A una posición en cada dimensión. El grupo de unos es ahora el centro de la matriz.

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

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

Para devolver el grupo a su posición original, utilice circshift en Y con valores de desplazamiento negativos. La matriz X equivale a 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

Argumentos de entrada

contraer todo

Arreglo de entrada, especificado como vector, matriz o arreglo multidimensional.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | struct | table | cell
Soporte de números complejos:

Cantidad de desplazamiento, especificada como escalar entero o vector de enteros.

  • Si especifica K como entero y no especifica dim, circshift se desplaza en la primera dimensión cuyo tamaño no es igual a 1. El K positivo se desplaza hacia el final de la dimensión y el K negativo se desplaza hacia el principio.

  • Si especifica K como vector de enteros, el N-ésimo elemento de K especifica la cantidad de desplazamiento para la N-ésima dimensión de A. Si el N-ésimo elemento de K es positivo, los valores de A se desplazan hacia el final de la N-ésima dimensión. Si el N-ésimo elemento es negativo, los valores se desplazan hacia el principio.

Si la cantidad de desplazamiento es mayor que la longitud de la dimensión correspondiente de A, el desplazamiento se reajusta de forma circular hasta el principio de esa dimensión. Por ejemplo, desplazar un vector de 3 elementos +3 posiciones devuelve sus elementos a sus posiciones originales.

Dimensión en la que operar, especificada como escalar entero positivo. Si no se especifica ningún valor, el valor predeterminado es la primera dimensión cuyo tamaño no es igual a 1. Si especifica dim, K debe ser un escalar entero. En general, especifique dim = 1 para intercambiar filas, dim = 2 para intercambiar columnas, etc.

Capacidades ampliadas

Generación de código de GPU
Genere código CUDA® para GPU NVIDIA® mediante GPU Coder™.

Historial de versiones

Introducido antes de R2006a

Consulte también

| | |