circshift
Desplazar un arreglo de forma circular
Descripción
Y = circshift(
desplaza de forma circular los elementos del arreglo A
,K
)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.
Ejemplos
Desplazar elementos de un vector columna
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.
Desplazar caracteres en un arreglo
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'
Desplazar elementos de una matriz
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
A
— Arreglo de entrada
vector | matriz | arreglo multidimensional
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: Sí
K
— Cantidad de desplazamiento
escalar entero | vector de enteros
Cantidad de desplazamiento, especificada como escalar entero o vector de enteros.
Si especifica
K
como entero y no especificadim
,circshift
se desplaza en la primera dimensión cuyo tamaño no es igual a 1. ElK
positivo se desplaza hacia el final de la dimensión y elK
negativo se desplaza hacia el principio.Si especifica
K
como vector de enteros, el N-ésimo elemento deK
especifica la cantidad de desplazamiento para la N-ésima dimensión deA
. Si el N-ésimo elemento deK
es positivo, los valores deA
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.
dim
— Dimensión en la que operar
escalar entero positivo
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 C/C++
Genere código C y C++ mediante MATLAB® Coder™.
Notas y limitaciones de uso:
La generación de código no es compatible con las tablas y las celdas para el primer argumento de entrada.
Generación de código de GPU
Genere código CUDA® para GPU NVIDIA® mediante GPU Coder™.
Entorno basado en subprocesos
Ejecute código en segundo plano con MATLAB® backgroundPool
o acelere código con Parallel Computing Toolbox™ ThreadPool
.
Esta función es totalmente compatible con entornos basados en subprocesos. Para obtener más información, consulte Run MATLAB Functions in Thread-Based Environment.
Arreglos GPU
Acelere código mediante la ejecución en una unidad de procesamiento gráfico (GPU) mediante Parallel Computing Toolbox™.
Esta función es totalmente compatible con los arreglos de GPU. Para obtener más información, consulte Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Arreglos distribuidos
Realice particiones de arreglos grandes por toda la memoria combinada de su cluster mediante Parallel Computing Toolbox™.
Esta función es totalmente compatible con los arreglos distribuidos. Para obtener más información, consulte Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Historial de versiones
Introducido antes de R2006a
Abrir ejemplo
Tiene una versión modificada de este ejemplo. ¿Desea abrir este ejemplo con sus modificaciones?
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)