Main Content

meshgrid

Griglie bidimensionali e tridimensionali

Descrizione

esempio

[X,Y] = meshgrid(x,y) restituisce le coordinate della griglia bidimensionale in base alle coordinate contenute nei vettori x e y. X è una matrice dove ciascuna riga è una copia di x e Y è una matrice dove ciascuna colonna è una copia di y. La griglia, rappresentata dalle coordinate X e Y ha righe di length(y) e colonne di length(x).

esempio

[X,Y] = meshgrid(x) è uguale a [X,Y] = meshgrid(x,x) e restituisce le coordinate della griglia quadrata con grandezza della griglia di length(x) x length(x).

esempio

[X,Y,Z] = meshgrid(x,y,z) restituisce le coordinate della griglia tridimensionale definite dai vettori x, y e z. La dimensione della griglia rappresentata da X, Y e Z è length(y) x length(x) x length(z).

esempio

[X,Y,Z] = meshgrid(x) è uguale a [X,Y,Z] = meshgrid(x,x,x) e restituisce le coordinate della griglia tridimensionale con grandezza della griglia di length(x) x length(x) x length(x).

Esempi

comprimi tutto

Creare le coordinate della griglia bidimensionale con le coordinate x definite dal vettore x e le coordinate y definite dal vettore y.

x = 1:3;
y = 1:5;
[X,Y] = meshgrid(x,y)
X = 5×3

     1     2     3
     1     2     3
     1     2     3
     1     2     3
     1     2     3

Y = 5×3

     1     1     1
     2     2     2
     3     3     3
     4     4     4
     5     5     5

Valutare l’espressione x2+y2 sulla grigia bidimensionale.

X.^2 + Y.^2
ans = 5×3

     2     5    10
     5     8    13
    10    13    18
    17    20    25
    26    29    34

Creare una griglia bidimensionale con coordinate x e y a spaziatura uniforme nell’intervallo [-2,2].

x = -2:0.25:2;
y = x;
[X,Y] = meshgrid(x);

Valutare e tracciare la funzione f(x,y)=xe-x2-y2 sulla griglia bidimensionale.

F = X.*exp(-X.^2-Y.^2);
surf(X,Y,F)

Figure contains an axes object. The axes object contains an object of type surface.

A partire dalla release R2016b, non è sempre necessario creare la griglia prima di operare sulla stessa. Ad esempio, il calcolo dell’espressione xe-x2-y2 espande implicitamente i vettori x e y. Per maggiori informazioni sull’espansione implicita, vedere Array vs. Matrix Operations.

surf(x,y,x.*exp(-x.^2-(y').^2))

Figure contains an axes object. The axes object contains an object of type surface.

Creare le coordinate della griglia tridimensionale dalle coordinate x, y e z definite nell’intervallo [0,6] e valutare l’espressione x2+y2+z2.

x = 0:2:6;
y = 0:1:6;
z = 0:3:6;
[X,Y,Z] = meshgrid(x,y,z);
F = X.^2 + Y.^2 + Z.^2;

Determinare le dimensioni della griglia. I tre vettori di coordinate hanno lunghezze diverse e costituiscono un riquadro rettangolare di punti della griglia.

gridsize = size(F)
gridsize = 1×3

     7     4     3

Utilizzare la sintassi a input singolo per generare una griglia 3D a spaziatura uniforme basata sulle coordinate definite in x. La nuova griglia costituisce un cubo di punti della griglia.

[X,Y,Z] = meshgrid(x);
G = X.^2 + Y.^2 + Z.^2;
gridsize = size(G)
gridsize = 1×3

     4     4     4

Argomenti di input

comprimi tutto

Coordinate x dei punti, specificate come vettore.

Tipi di dati: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Coordinate y dei punti, specificate come vettore.

Tipi di dati: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Coordinate z dei punti, specificate come vettore.

Tipi di dati: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Argomenti di output

comprimi tutto

Coordinate x su una griglia, restituite come un array bidimensionale (due input) o tridimensionale (tre input).

Coordinate y su una griglia, restituite come un array bidimensionale (due input) o tridimensionale (tre input).

Coordinate z su una griglia, restituite come un array tridimensionale.

Ulteriori informazioni

comprimi tutto

Conversione tra i formati meshgrid e ndgrid

meshgrid e ndgrid creano griglie utilizzando formati di output diversi. Nello specifico, le prime due dimensioni di una griglia creata utilizzando una di queste funzioni vengono scambiate rispetto all'altro formato di griglia. Alcune funzioni di MATLAB® utilizzano griglie in formato meshgrid, mentre altre utilizzano il formato ndgrid; risulta quindi normale convertire le griglie tra i due formati.

La conversione tra questi due formati di griglia è possibile utilizzando pagetranspose (dalla release R2020b) o permute per scambiare le prime due dimensioni degli array della griglia. Ad esempio, creare una griglia tridimensionale con meshgrid.

[X,Y,Z] = meshgrid(1:4,1:3,1:2);

Ora trasporre le prime due dimensioni di ciascun array della griglia per convertirla nel formato ndgrid e confrontare i risultati ottenuti con gli output di ndgrid.

Xt = pagetranspose(X);
Yt = pagetranspose(Y);
Zt = pagetranspose(Z);
[Xn,Yn,Zn] = ndgrid(1:4,1:3,1:2);
isequal(Xt,Xn) & isequal(Yt,Yn) & isequal(Zt,Zn)
ans =

  logical

   1

L’utilizzo di pagetranspose equivale a permutare le prime due dimensioni lasciando invariate le altre. È possibile eseguire questa operazione anche con permute(X,[2 1 3:ndims(X)]).

Funzionalità estese

Generazione di codice C/C++
Genera codice C e C++ con MATLAB® Coder™.

Generazione di codice GPU
Genera codice CUDA® per GPU NVIDIA® con GPU Coder™.

Cronologia versioni

Introduzione prima di R2006a