reshape
Remodelar un arreglo
Descripción
remodela B
= reshape(A
,sz1,...,szN
)A
como arreglo szN
de sz1
por ...
en el que sz1,...,szN
indica el tamaño de cada dimensión. Puede especificar un tamaño de dimensión único de []
para que se calcule automáticamente el tamaño de dimensión, de manera que el número de elementos de B
coincida con el número de elementos de A
. Por ejemplo, si A
es una matriz de 10 por 10, reshape(A,2,2,[])
remodela los 100 elementos de A
como arreglo de 2 por 2 por 25.
Ejemplos
Remodelar un vector como matriz
Remodele un vector de 1 por 10 como matriz de 5 por 2.
A = 1:10; B = reshape(A,[5,2])
B = 5×2
1 6
2 7
3 8
4 9
5 10
Remodelar una matriz para que tenga un número especificado de columnas
Remodele una matriz cuadrada de 4 por 4 como matriz con 2 columnas. Especifique []
para la primera dimensión, a fin de permitir que reshape
calcule automáticamente el número adecuado de filas.
A = magic(4)
A = 4×4
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
B = reshape(A,[],2)
B = 8×2
16 3
5 10
9 6
4 15
2 13
11 8
7 12
14 1
El resultado es una matriz de 8 por 2 que mantiene el mismo número de elementos que la matriz original. Los elementos en B
también mantienen el orden por columnas de A
.
Remodelar un arreglo multidimensional como matriz
Remodele un arreglo de 2 por 2 por 3 de valores aleatorios como una matriz de 6 por 2.
rng default
A = rand(2,2,3)
A = A(:,:,1) = 0.8147 0.1270 0.9058 0.9134 A(:,:,2) = 0.6324 0.2785 0.0975 0.5469 A(:,:,3) = 0.9575 0.1576 0.9649 0.9706
B = reshape(A,6,2)
B = 6×2
0.8147 0.2785
0.9058 0.5469
0.1270 0.9575
0.9134 0.9649
0.6324 0.1576
0.0975 0.9706
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
| cell
| struct
| datetime
| duration
| calendarDuration
Soporte de números complejos: Sí
sz
— Tamaño de salida
vector fila de enteros
Tamaño de salida, especificado como vector fila de enteros. Cada elemento de sz
indica el tamaño de la dimensión correspondiente de B
. Debe especificar sz
de forma que el número de elementos de A
y B
sea el mismo. Es decir, que prod(sz)
debe ser igual a numel(A)
.
Más allá de la segunda dimensión, la salida, B
, no refleja las dimensiones posteriores con un tamaño de 1
. Por ejemplo, reshape(A,[3,2,1,1])
produce una matriz de 3 por 2.
Ejemplo: reshape(A,[3,2])
Ejemplo: reshape(A,[6,4,10])
Ejemplo: reshape(A,[5,5,5,5])
sz1,...,szN
— Tamaño de cada dimensión
dos o más enteros | []
(opcional)
Tamaño de cada dimensión, especificado como dos o más enteros con al menos un []
(opcional). Debe especificar al menos 2 tamaños de dimensiones, y al menos un tamaño de dimensión se debe especificar como []
, lo que automáticamente calcula el tamaño de esa dimensión para asegurarse de que numel(B)
coincida con numel(A)
. Cuando utiliza []
para calcular automáticamente un tamaño de dimensión, las dimensiones que sí especifica de forma explícita se deben dividir de modo uniforme en el número de elementos de la matriz de entrada, numel(A)
.
Más allá de la segunda dimensión, la salida, B
, no refleja las dimensiones posteriores con un tamaño de 1
. Por ejemplo, reshape(A,3,2,1,1)
produce una matriz de 3 por 2.
Ejemplo: reshape(A,3,2)
Ejemplo: reshape(A,6,[],10)
Ejemplo: reshape(A,2,5,3,[])
Ejemplo: reshape(A,5,5,5,5)
Argumentos de salida
B
— Arreglo remodelado
vector | matriz | arreglo multidimensional | arreglo de celdas
Arreglo remodelado, devuelto como vector, matriz, arreglo multidimensional o arreglo de celdas. El tipo de datos y el número de elementos de B
son los mismos que el tipo de datos y el número de elementos de A
. Los elementos de B
mantienen el orden por columnas de A
.
Tipos de datos: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| cell
| datetime
| duration
| calendarDuration
Capacidades ampliadas
Arreglos altos
Realice cálculos con arreglos que tienen más filas de las que caben en la memoria.
Esta función es compatible con arreglos altos, con las siguientes limitaciones:
No se permite remodelar la dimensión alta (dimensión uno). La primera dimensión debe estar siempre vacía, como
reshape(X,[],M,N,...)
.
Para obtener más información, consulte Arreglos altos para datos con memoria insuficiente.
Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.
Notas y limitaciones de uso:
Si la entrada es un arreglo de celdas vacío en tiempo de compilación, los argumentos de tamaño deben ser constantes.
Los argumentos de tamaño deben tener un tamaño fijo.
Consulte Variable-Sizing Restrictions for Code Generation of Toolbox Functions (MATLAB Coder).
En matrices dispersas, la función
reshape
no permite añadir unos posteriores como entradas después de las dos primeras dimensiones.
Generación de código de GPU
Genere código CUDA® para GPU NVIDIA® mediante GPU Coder™.
Notas y limitaciones de uso:
Si la entrada es un arreglo de celdas vacío en tiempo de compilación, los argumentos de tamaño deben ser constantes.
Los argumentos de tamaño deben tener un tamaño fijo.
En matrices dispersas, la función
reshape
no permite añadir unos posteriores como entradas después de las dos primeras dimensiones.
Generación de código HDL
Genere código Verilog y VHDL para diseños FPGA y ASIC mediante HDL 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)