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

Interfaces Graphiques Discussion :

Petit pb avec @


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Par défaut Petit pb avec @
    Bonjour,

    Désolé de ma longue absence sur le forum. J'ai eu pas mal de travail ces derniers temps donc je venais juste pour consulter les nouveautés de temps en temps...
    J'aurais besoin de votre aide encore une fois. En fait j'ai trouvé une solution pour mon maillage mais je rencontre quelques problèmes. Voilà mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function maille(obj,event)
            m = getappdata(0,'formes');     % Récupération de la matrice m qui contient les formes
     
            [p,t]=distmeshnd(@maillage,@huniform,3,[-20,-20,-20;20,20,20],[]);
    end
    Et voilà ma fonction de maillage :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    function d=maillage(p,m)
        taille = size(m);                           % taille est une matrice de type [nbLignes nbColonnes]
        nbLignes = taille(1,1);                     % On récupère le nombre de lignes contenu dans taille(1,1)
     
        for i = 1:nbLignes
            if i==1
                r=sqrt(p(:,1).^2+p(:,2).^2);
                z=p(:,3);
     
                d1=r-20;
                d2=z-20;
                d3=-z-20;
                d4=sqrt(d1.^2+d2.^2);
                d5=sqrt(d1.^2+d3.^2);
                d=dintersect(dintersect(d1,d2),d3);
                ix=d1>0 & d2>0;
                d(ix)=d4(ix);
                ix=d1>0 & d3>0;
                d(ix)=d5(ix);
            else
                r=sqrt((p(:,1)+5).^2+(p(:,2)-6).^2);
                d1=r-6;
                d2=z-20;
                d3=-z-20;
                d4=sqrt(d1.^2+d2.^2);
                d5=sqrt(d1.^2+d3.^2);
                dinter=dintersect(dintersect(d1,d2),d3);
                ix=d1>0 & d2>0;
                dinter(ix)=d4(ix);
                ix=d1>0 & d3>0;
                dinter(ix)=d5(ix);
     
                d=ddiff(d,dinter);
            end
        end
    end
    Je ne comprend pas vraiment comment se fait le passage de paramètres ici. Est ce que vous pourriez m'expliquer? Parce que quand j'essaye de lancer ça, Matlab me dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ??? Input argument "m" is undefined.
     
    Error in ==> maillage at 2
        taille = size(m);                           % taille est une matrice de type [nbLignes nbColonnes]
     
    Error in ==> distmeshnd at 43
    p=p(feval(fdist,p,varargin{:})<geps,:);
     
    Error in ==> simulation>maille at 342
            [p,t]=distmeshnd(@maillage,@huniform,3,[-20,-20,-20;20,20,20],[]);
     
    ??? Error while evaluating uicontrol Callback
    Merci d'avance pour vos réponses.

  2. #2
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Je n'ai pas DISTMESHND (je ne le trouve pas sur le site de The Mathworks non plus...) : peux-tu nous montrer son entête (la 1ère ligne avec function...) ?

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Par défaut
    Voilà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    function [p,t]=distmeshnd(fdist,fh,h,box,fix,varargin)
    S'il te faut autre chose fait moi signe .

  4. #4
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    OK donc comme l'appel à ta fonction se fait à cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    p=p(feval(fdist,p,varargin{:})<geps,:);
    %En décomposant plus précisément ce qui nous intéresse est ;
    feval(fdist,p,varargin{:})
    %ce qui équivaut avec ton appel à :
    maillage(p,varargin{:})
    Donc je suppose que p est défini quelque part dans la fonction DISTMESHND puisqu'il n'est pas passé en argument.
    Par contre dans ton cas varargin{:} est vide puisque tu ne donnes que 5 arguments à DISTMESHND et que varargin (qui veut dire un nombre quelconque d'arguments) est le 6ème argument.
    Donc si tu veux passer m il te faut tout simplement le rajouter en dernier argument de DISTMESHN.

    Par curiosité :
    - D'où vient cette fonction ?
    - N'y a-t-il pas une aide associée ?

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Par défaut
    C'est une fonction que j'ai trouvé avec l'aide de mon professeur de programmation. Et non je n'ai pas trouvé d'aide pour cette fonction. J'ai donc effectué des tests avec mon professeur pour voir comment elle fonctionne... Je vais tester ta solution pour voir si ça marche.

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    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 317

Discussions similaires

  1. [TP]petit probleme avec solution
    Par pompompolom dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 02/12/2004, 19h48
  2. petit probleme avec l'éditeur de builder
    Par qZheneton dans le forum C++Builder
    Réponses: 2
    Dernier message: 28/10/2004, 16h19
  3. [CVS] Petits déboires avec JBuilder9 et CVS
    Par Marc_P dans le forum JBuilder
    Réponses: 2
    Dernier message: 19/02/2004, 09h35
  4. [DEBUTANT] petits soucis avec un prgm de chat
    Par LechucK dans le forum MFC
    Réponses: 8
    Dernier message: 19/01/2004, 16h52
  5. [debutant] pour debbuger un petit prog avec menu
    Par niluge01 dans le forum Windows
    Réponses: 3
    Dernier message: 22/11/2003, 14h03

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