Main Content

meshgrid

Description

exemple

[X,Y] = meshgrid(x,y) renvoie les coordonnées de la grille 2D sur la base des coordonnées contenues dans les vecteurs x et y. X est une matrice dont chaque ligne est une copie de x, et Y est une matrice dont chaque colonne est une copie de y. La grille représentée par les coordonnées X et Y comporte length(y) lignes et length(x) colonnes.

exemple

[X,Y] = meshgrid(x) est identique à [X,Y] = meshgrid(x,x) et renvoie les coordonnées d’une grille carrée de length(x) x length(x).

exemple

[X,Y,Z] = meshgrid(x,y,z) renvoie les coordonnées de la grille 3D définies par les vecteurs x, y et z. La grille représentée par X, Y et Z est d’une taille de length(y) x length(x) x length(z).

exemple

[X,Y,Z] = meshgrid(x) est identique à [X,Y,Z] = meshgrid(x,x,x) et renvoie les coordonnées de la grille 3D d’une taille de length(x) x length(x) x length(x).

Exemples

réduire tout

Créez des coordonnées de grille 2D dont les coordonnées x sont définies par le vecteur x et les coordonnées y sont définies par le vecteur 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

Évaluez l’expression x2+y2 sur la grille 2D.

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

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

Créez une grille 2D dont les coordonnées x et y sont uniformément espacées dans l’intervalle [-2,2].

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

Évaluez et tracez la fonction f(x,y)=xe-x2-y2 sur la grille 2D.

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.

Depuis la version R2016b, il n’est pas toujours nécessaire de créer la grille avant de réaliser des opérations dessus. Par exemple, le calcul de l’expression xe-x2-y2 étend implicitement les vecteurs x et y. Consultez Array vs. Matrix Operations pour plus d’informations sur l’expansion implicite.

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

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

Créez des coordonnées de grille 3D à partir des coordonnées x, y et z définies dans l’intervalle [0,6], puis évaluez l’expression 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;

Déterminez la taille de la grille. Les trois vecteurs de coordonnées ont des longueurs différentes, formant une boîte rectangulaire de points de grille.

gridsize = size(F)
gridsize = 1×3

     7     4     3

Utilisez la syntaxe à entrée unique pour générer une grille 3D uniformément espacée sur la base des coordonnées définies dans x. La nouvelle grille forme un cube de points de grille.

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

     4     4     4

Arguments d'entrée

réduire tout

Coordonnées x des points, spécifiées sous forme de vecteur.

Types de données : single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Coordonnées y des points, spécifiées sous forme de vecteur.

Types de données : single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Coordonnées z des points, spécifiées sous forme de vecteur.

Types de données : single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Arguments de sortie

réduire tout

Coordonnées x sur une grille, renvoyées sous forme de tableau 2D (deux entrées) ou 3D (trois entrées).

Coordonnées y sur une grille, renvoyées sous forme de tableau 2D (deux entrées) ou 3D (trois entrées).

Coordonnées z sur une grille, renvoyées sous forme de tableau 3D.

En savoir plus

réduire tout

Conversion entre les formats meshgrid et ndgrid

meshgrid et ndgrid créent des grilles en utilisant différents formats de sortie. Plus précisément, les deux premières dimensions d’une grille créée à l’aide de l’une de ces fonctions sont inversées par rapport à l’autre format de grille. Certaines fonctions MATLAB® utilisent des grilles au format meshgrid, tandis que d’autres utilisent le format ndgrid. La conversion des grilles entre les deux formats est donc courante.

Vous pouvez convertir ces formats de grille en utilisant pagetranspose (dès la version R2020b) ou permute pour inverser les deux premières dimensions des grid arrays (tableaux de grille). Par exemple, créez une grille 3D avec meshgrid.

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

Transposez maintenant les deux premières dimensions de chaque grille pour convertir la grille au format ndgrid et comparez les résultats avec les sorties de 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’utilisation de pagetranspose équivaut à permuter les deux premières dimensions tout en préservant les autres. Vous pouvez également effectuer cette opération à l’aide de permute(X,[2 1 3:ndims(X)]).

Capacités étendues

Génération de code C/C++
Générez du code C et C++ avec MATLAB® Coder™.

Génération de code GPU
Générez du code CUDA® pour les GPU NVIDIA® avec GPU Coder™.

Historique des versions

Introduit avant R2006a