Bonjour à tous,
Je suis un étudiant en hydrologie. Je suis encore débutant en matlab.
Je fais des mesures de vitesses dans les collecteurs d'assainissement et je voudrais tracer les champs de vitesse.
Mes points de mesure forment une grille régulière, et j'obtiens un contour dans une grille régulière (points ronds en blanche sur la figure).
Mais je voudrais interpoler mes données sur toute la section de mon collecteur (c'est à dire grille irrégulière) mais je n’y arrivais pas, donc j’aurais besoin de votre aide. J'ai tracé à la main en bleu sur la figure la surface sur laquelle je voudrais avoir mes champs de vitesses.
Voici les données exemples sur la figure:
Et voici le bout de code que j’ai utilisé pour le tracé de contour :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 abscisses ordonnées Vitesses y z Vi m m m/s 0,20 0,03 0,00 0,20 0,10 0,10 0,20 0,20 0,15 0,20 0,30 0,17 0,20 0,40 0,20 0,20 0,50 0,20 0,40 0,03 0,00 0,40 0,10 0,08 0,40 0,20 0,16 0,40 0,30 0,16 0,40 0,40 0,21 0,40 0,50 0,22 0,60 0,03 0,00 0,60 0,10 0,05 0,60 0,20 0,08 0,60 0,30 0,04 0,60 0,40 0,12 0,60 0,50 0,13
Je vous remercie par avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 %création de la matrice [Y,Z]=meshgrid(0:.01:1,0:.01:1); V=griddata(y,z,Vi,Y,Z); % %création des contours [C,h]=contourf(Y,Z,V); set(h,'Showtext','on','LevelList',[0:0.03:max(Vi)],'DisplayName','Contour (y,z,Vi)');colorbar; k=convhull(y,z); plot(y,z,'ko','markerfacecolor','w', 'DisplayName','Points de mesure') F=scatteredInterpolant(y,z,Vi);
Jean
Pièce jointe 181988
Partager