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 :

Grille en polaire


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2008
    Messages : 115
    Points : 34
    Points
    34
    Par défaut Grille en polaire
    Bonjour à tous,

    J'ai écris un code MATLAB nécessitant l'expression d'une fonction discrétisée sur une grille (x,y) de points (512*512). J'aimerais passer cette représentation en polaire. Or, je ne vois pas trop quelle démarche suivre. Il faut, j'imagine, commencer par passer ma grille cartésienne en polaire...?


    Merci

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2008
    Messages : 115
    Points : 34
    Points
    34
    Par défaut
    Je vous transmet la partie de mon code me permettant de générer ma grille cartésienne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Np = 512;
    max_grille = 2*G;
    pas = max_grille/Np;
     
    vec_np = 1:Np;
    vec_axe = -max_grille/2 + pas/2 + (vec_np-1)*pas;
    vec_axe_fft = -1/(2*pas) + (vec_np-1)*1/(Np*pas);
     
    [X,Y] = meshgrid(vec_axe);
    [FFT_X,FFT_Y] = meshgrid(vec_axe_fft);
    ...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    La fonction cart2pol te conviendrait-elle ?

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    x = r cos a
    y = r sin a

    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2008
    Messages : 115
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Winjerome Voir le message
    Bonjour,

    La fonction cart2pol te conviendrait-elle ?
    Bonjour,

    J'avais déjà effectivement essayé cette fonction en rajoutant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [X,Y] = meshgrid(vec_axe);
    [X,Y] = cart2pol(X,Y);
    Mais la représentation graphique ensuite n'est pas bonne.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Dans ce cas, dis-nous plus précisément ce que tu souhaites faire.

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    si (xc, yc) sont les coordonées du centre (si le pole est au centre)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    pour i = 0  jusqu'à i < Ny   par pas de dy
       pour j = 0  jusqu'à j < Nx   par pas de dx
     
       x = j*dx - xc
       y = i*dy - yc
     
       r = sqrt( x^2 + y^2)
       a = atan2 ((y-yc), (x-xc)
     
       plot ( r, a )
     
     
       fin pour
    fin pour
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2008
    Messages : 115
    Points : 34
    Points
    34
    Par défaut
    Eh bien j'aimerais juste passer mon code cartésien du deuxième post en polaire, mais...

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par tpscience Voir le message
    Eh bien j'aimerais juste passer mon code cartésien du deuxième post en polaire, mais...
    Citation Envoyé par tpscience Voir le message
    Mais la représentation graphique ensuite n'est pas bonne.
    En quoi ?

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2008
    Messages : 115
    Points : 34
    Points
    34
    Par défaut
    Je ne retrouve pas de symétrie cylindrique, on dirait que la représentation se fait toujours en cartésien...

  11. #11
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Pour tracer en coordonnée polaires, il faut utiliser la fonction polar
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2008
    Messages : 115
    Points : 34
    Points
    34
    Par défaut
    Pour être plus explicite, et sans trop rentrer dans le détail du programme qui est très long : je cherche à représenter une somme de deux faisceaux, un gaussien auquel je somme un faisceau d'ordre supérieur, ici un laguerre-gauss d'ordre quelconque. Pour faire cela, j'avais déjà écris tout mon code en cartésien pour générer le faisceau gaussien. Or, maintenant j'aimerais rajouter cette partie en laguerre-gauss que je génère à partir de paramètres polaires. Je pense donc que sommer deux contributions dans deux systèmes de coordonnées différentes n'est pas adéquat !

    D'où le fait que je cherche à passer dès le début de mon programme en polaire, et cela correspond aux lignes postées sur mon post #2.

    Si je trace juste un mode laguerre-gauss d'ordre mn=10, et que je laisse tout en cartésien j'obtiens la figure jointe. Il y a sur celle-ci un pb qui est bien entendu que la symétrie circulaire n'est pas respectée, le profil semble étalé. Il me semble que cela est dû au fait que le profil correct ne soit enregistré que sur une des deux dimensions...
    Images attachées Images attachées

  13. #13
    Invité
    Invité(e)
    Par défaut
    Si j'ai bien compris, tu peux t'inspirer de ce message.

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2008
    Messages : 115
    Points : 34
    Points
    34
    Par défaut
    Merci beaucoup, je vais regarder cela !

Discussions similaires

  1. Désactiver la multi-sélection d'une grille
    Par Riko dans le forum Composants VCL
    Réponses: 6
    Dernier message: 17/06/2003, 09h47
  2. Grille avec saisie & Combos lié
    Par J-P-B dans le forum XMLRAD
    Réponses: 2
    Dernier message: 12/06/2003, 11h08
  3. jaimerais savoir commen creer une grille.......
    Par zephyr dans le forum Flash
    Réponses: 5
    Dernier message: 29/04/2003, 12h14
  4. [VB6] [Interface] Grille avec combobox
    Par khany dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 15/01/2003, 09h55

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