Matlab surf/plot

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

Matlab surf/plot

par fatal_error » 13 Mai 2009, 21:34

Bonjour à tous,

une question bidon mais qui m'ôterait certainement pas mal de temps perdu ...
J'ai une liste de points 3D de la forme :
x y z
1 2 3
3 2 4
1 2 4
Je voudrais tracer un surf(z) ( altitude en fonction de la position, et coloriage des facettes). En tenant compte des cordonnées x et y. Le problème, c'est que la fonction surf n'est pas définie pour trois vecteurs.

Il y a bien plot3 qui marche, mais les faces ne sont ni créées, ni coloriées.

J'ai aussi regardé du coté de mesh qui ressemble tres fortement a surf. Du coté de meshgrid, ca n'a pas trop l'air de coller non plus.

Une piste bancale qu'il semble tout de même y avoir :
bidouiller mon vecteur x pour en faire une matrice, de même pour mon vecteur y. Et encore pareil pour z. De cette manière, j'obtiens alors qqch que je peux envoyer a surf/mesh.

Est-ce qu'il y a une fonction toute faite? Ou un enchainement de fonctions toute faites?

Merci d'avance :happy2:
la vie est une fête :)



Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 13 Mai 2009, 23:14

Bon, ben a défaut d'avoir plus propre, on peut y aller a coup de reshape :
supposant que le nombre delements soit divisible par m*n, on a :
Code: Tout sélectionner
A=reshape(x,m,n);
B=reshape(y,m,n);
C=reshape(z,m,n);

surf(A,B,C);
la vie est une fête :)

noha
Messages: 1
Enregistré le: 14 Mai 2009, 13:10

meme pb

par noha » 14 Mai 2009, 13:12

bonjour
est ce que vous avez trouvé une solution?
merci d'avance

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 14 Mai 2009, 18:05

salut,

ben avec les reshape.
Sinon une autre maniere, c'est d'utiliser patch.

En gros, tu definis des facettes (définit par des points). Pour chaque facette, tu peux choisir une couleur. (ex typique : une certaine couleur pour un intervalle d'altitudes).
la vie est une fête :)

kazeriahm
Membre Irrationnel
Messages: 1608
Enregistré le: 04 Juin 2006, 09:49

par kazeriahm » 14 Mai 2009, 23:01

j'ai pas bien compris ce que tu attends mais si tu veux tracer z=f(x,y) alors

[x y]=meshgrid(l'intervalle en x, l'intervalle en y);
z=f(x,y);
surf(x,y,z);

marche très bien

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 48 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite