IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Maillage de la representation graphique d'une matrice


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    7
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Maillage de la representation graphique d'une matrice
    Bonjour,

    Je dispose d'une matrice n*n remplie de 0 et de 1 uniquement. Ces 0 et ces 1 forment des formes géometriques (rond/carré/triangle...) via la fonction ''pcolor''.

    Je souhaite créer un maillage a partir de cette matrice. C'est à dire, au lieu d'avoir une matrice remplie de valeurs, je souhaiterai un matrice qui signifie :''à telle coordonée, il y a le centre d'un cercle de rayon R'', par exemple.

    Est-ce possible de faire ca sous Matlab ? (surement ! )
    Si oui, est ce que quelqu'un a une idée d'une fonction a utiliser ? J'ai fais pas mal de recherches ces derniers temps, mais je ne trouve que des fonctions pour tracer un maillage, mais pas réellement une fonction qui donne en output un liste de formes géometriques.

    J'espere que vous pourrez m'aider,
    A bientot.

  2. #2
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour,

    Il ne me semble pas difficile de détecter des formes exactes à la main. Par exemple pour le rect.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function check=isrect(M,x,y,w,h)
    check= all(M(x:x+w,y:y+h))
    Ensuite tu parcours toutes les valeurs possibles de x,y,w,h. Ça va dépendre du sens de parcours. Traiter les cercles avant les rect me semble judicieux, ainsi que de commencer par les plus larges, et de mettre à 0 les cases déjà associés à une forme.

    Par contre, ça peut être beaucoup plus compliqué si tu cherches à détecter des formes approchées

  3. #3
    Membre régulier Avatar de Décembre
    Inscrit en
    Avril 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 277
    Points : 110
    Points
    110
    Par défaut
    Salut,

    Essaie de voir ces fonctions matlab:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mesh, meshc, meshz

  4. #4
    Candidat au Club
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    7
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Merci pour vos reponses.

    Décembre--> Je connais ces fonctions, mais a ma connaissances, elles ne font ''que'' tracer une representation graphique de ma matrice, et ce n'est pas vraiment ce que je veux.
    Je souhaiterai obtenir une (des?) matrices/vecteurs idenquant les coordonnees des differentes formes geometriques contenues dans la matrice.

    VV33D--> Je ne comprend pas vraiment ce que tu me proposes de faire. Tu me proposes de regarder si chaque combinaison de 4 coordonnees (x,y,w,h) forment un rectangle, ensuite refaire la meme chose pour les cercles ect? Et quelle est cette fonction ''isrect'' ?

    A bientot.

  5. #5
    Membre régulier Avatar de Décembre
    Inscrit en
    Avril 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 277
    Points : 110
    Points
    110
    Par défaut
    Salut,
    Si j'ai bien compris, pour t'aider à représenter ta géométrie à l'aide de triangle(mesh triangulaire) tu peux essayer ceci à partir de ta matrice A dont la taille est (n,m,t):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    g = isosurface(A, 0.99);

  6. #6
    Candidat au Club
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    7
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Salut,

    En fait je crois que j'ai mal expliqué mon soucis, je vais essayer de faire plus clair :

    J'ai une matrice remplie de 2 valeurs uniquement : 0 et 1.
    Toutes les valeurs 0 représentent un matériaux A. Les valeurs 1 représentent un matériaux B. Les 2 matériaux ont des propriétés physiques différentes.

    Donc certes ma matrice est 3D, mais en fait ce n'est qu'un espace 2D avec 2 différents milieu.

    Je souhaite trouve un maillage de ce milieu, qui me permettrait de réaliser des calculs par éléments finis par la suite.

    J'espere avoir été plus clair et que vous pourrez m'aider

    Merci d'avance.

  7. #7
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    Avec une triangulation de Delaunay, par exemple :
    ?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  8. #8
    Candidat au Club
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    7
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par magelan Voir le message
    Bonjour,

    Avec une triangulation de Delaunay, par exemple :
    ?
    En effet ca semble fonctionner. Merci !

    J'en profite pour demander, existe t il une astuce pour creer la matrice de contraintes lorsque l'on utilise une triangulation de Delaunay ?

    Si j'ai bien compris, les contraintes representent les bords du domaine qui l'on maille. Il est simple de la cree dans un cas simple (un carre dans un carre par exemple) mais si on a une geometrie tres compliquee (c'est mon cas) comment faire pour creer cette fameuse matrice de contrainte ?

    J'ai essayer de creer un algorithme qui prend le point le plus proche, mais ca prend un temps fou et il y a pleins de bugs...

    Je n'ai pas trouve de reponses sur l'aide matlab, j'espere que vous pourrez m'aider

Discussions similaires

  1. Interface graphique d'une matrice 5X5
    Par spencer94 dans le forum Assembleur
    Réponses: 0
    Dernier message: 04/04/2014, 17h38
  2. Représentation graphique d'une matrice
    Par Mail4444 dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 30/06/2010, 15h57
  3. Graphique d'une matrice
    Par guivara dans le forum MATLAB
    Réponses: 1
    Dernier message: 03/05/2008, 01h22
  4. Affichage graphique d'une matrice 3D (Graphique en 4D)
    Par Ptit oui-oui dans le forum MATLAB
    Réponses: 2
    Dernier message: 20/09/2007, 18h59
  5. Théorie des graphes : Représentation GRAPHIQUE d'une matrice d'adjacence
    Par jm_gouy dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 03/05/2006, 16h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo