Main Content

reshape

Rimodellare l'array riorganizzando gli elementi esistenti

Descrizione

esempio

B = reshape(A,sz) rimodella A utilizzando il vettore delle grandezze sz per definire size(B). Ad esempio, reshape(A,[2,3]) rimodella A in una matrice 2x3. sz deve contenere almeno 2 elementi e prod(sz) deve essere uguale a numel(A).

esempio

B = reshape(A,sz1,...,szN) rimodella A in array sz1 x ... x szN dove sz1,...,szN indica la grandezza di ciascuna dimensione. È possibile specificare una singola grandezza della dimensione di [] per far calcolare automaticamente la grandezza della dimensione, in modo che il numero di elementi in B corrisponda al numero di elementi in A. Ad esempio, se A è una matrice 10x10, reshape(A,2,2,[]) rimodella i 100 elementi di A in un array 2x2x25.

Esempi

comprimi tutto

Rimodellare un vettore 1x10 in una matrice 5x2.

A = 1:10;
B = reshape(A,[5,2])
B = 5×2

     1     6
     2     7
     3     8
     4     9
     5    10

Rimodellare una matrice quadrata 4x4 in una matrice con 2 colonne. Specificare [] per la prima dimensione per consentire a reshape di calcolare automaticamente il numero appropriato di righe.

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

Il risultato è una matrice 8x2, che mantiene lo stesso numero di elementi della matrice originale. Gli elementi in B mantengono inoltre l’ordinamento colonna per colonna da A.

Rimodellare un array 2x2x3 di valori casuali in una matrice 6x2.

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

Argomenti di input

comprimi tutto

Array di input, specificato come vettore, matrice o array multidimensionale.

Tipi di dati: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | struct | datetime | duration | calendarDuration
Supporto numeri complessi:

Grandezza dell’output, specificata come vettore riga di numeri interi. Ciascun elemento di sz indica la grandezza della dimensione corrispondente in B. È necessario specificare sz in modo che il numero di elementi in A e in B sia uguale. Ossia, prod(sz) deve essere uguale a numel(A).

Oltre la seconda dimensione, l'output B non riflette le dimensioni finali con grandezza pari a 1. Ad esempio, reshape(A,[3,2,1,1]) produce una matrice 3x2.

Esempio reshape(A,[3,2])

Esempio reshape(A,[6,4,10])

Esempio reshape(A,[5,5,5,5])

Grandezza di ciascuna dimensione, specificata da due o più numeri interi con al massimo un [] (opzionale). È necessario specificare almeno 2 grandezze della dimensione e al massimo una grandezza può essere specificata come [], che calcola automatica la grandezza di tale dimensione per garantire che numel(B) corrisponda a numel(A). Quando si utilizza [] per calcolare automaticamente una grandezza della dimensione, le dimensioni che si specificano esplicitamente devono dividersi in parti uguali nel numero di elementi della matrice di input numel(A).

Oltre la seconda dimensione, l'output B non riflette le dimensioni finali con grandezza pari a 1. Ad esempio, reshape(A,3,2,1,1) produce una matrice 3x2.

Esempio reshape(A,3,2)

Esempio reshape(A,6,[],10)

Esempio reshape(A,2,5,3,[])

Esempio reshape(A,5,5,5,5)

Argomenti di output

comprimi tutto

Array rimodellato, restituito come vettore, matrice, array multidimensionale o array di celle. Il tipo di dati e il numero di elementi in B sono uguali al tipo di dati e al numero di elementi in A. Gli elementi in B preservano l’ordinamento colonna per colonna da A.

Tipi di dati: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | datetime | duration | calendarDuration

Suggerimenti

  • La funzione di rimodellamento riorganizza gli elementi esistenti nei dati di input. Per aggiungere o rimuovere elementi, utilizzare la funzione resize.

Funzionalità estese

Generazione di codice HDL
Genera codice VHDL, Verilog e SystemVerilog per progetti FPGA e ASIC utilizzando HDL Coder™.

Cronologia versioni

Introduzione prima di R2006a