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 :

Créer N cercles localisées aléatoirement dans un rectangle


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 2
    Par défaut Créer N cercles localisées aléatoirement dans un rectangle
    Bonjour à tous,

    Je fais appel à vous car je suis bloqué sur un exercice d'électrostatique où il faut créer N charges ponctuelles(cercles) localisées aléatoirement dans une boîte d’air(rectangle) qui grâce à PDEtool me donnera un dessin de la chose.

    Dans l'exemple où N=4, je crée donc 4 cercles (x,y,rayon,'Dipole') où x et y, sont chacun aléatoires dans une boite dont les coordonnées x et y sont comprises entre -50 et 50.
    Ce que j'ai réussi à faire et qui fonctionne mais qui est évidemment beaucoup trop fastidieux est ci dessous :

    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
     
    a=50;
    x1=randperm(100,1)-a;
    y1=randperm(100,1)-a;
    x2=randperm(100,1)-a;
    y2=randperm(100,1)-a;
    x3=randperm(100,1)-a;
    y3=randperm(100,1)-a;
    x4=randperm(100,1)-a;
    y4=randperm(100,1)-a;
    pderect([-50 50 -50 50],'BoiteAir');
    pdecirc(x1,y1,4,'Dipole1');
    pdecirc(x2,y2,4,'Dipole2');
    pdecirc(x3,y3,4,'Dipole3');
    pdecirc(x4,y4,4,'Dipole4');
    set(findobj(get(pde_fig,'Children'),'Tag','PDEEval'),'String','BoiteAir+Dipole1+Dipole2+Dipole3+Dipole4');
    Malheureusement dans le cas où N=50 c'est inimaginable de réécrire 100 fois la même formule pour x puis pour y puis initialiser 100 cercles.
    j'ai essayé de faire ça avec un for mais il faudrait donc que je fasse quelque chose comme ça (qui je sais va faire grincer des dents plus d'un )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    N=4;
    for i=1:N
        eval(['X',num2str(i),'=randperm(100,1)-a;)']);
        eval(['Y',num2str(i),'=randperm(100,1)-a;)']);
        pdecirc(X(i),Y(i),4,'Dipole(i)');
    end
    En supposant que ce soit bon , Comment faire que toutes mes formes créées s'ajoutent dans le set (dernière ligne du premier code) ?

    Je sais que j'en demande peut-être beaucoup mais Matlab n'est que tout nouveau pour moi.

    Je vous remercie d'avance, en espérant avoir été la plus clair possible.

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut


    En fait, ce que tu cherches, ce sont les vecteurs : tu crées une variable x qui contient un vecteur de nombres et remplacera tous tes xi (idem pour y).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    N=4;
    x = zeros(N, 1);
    y = zeros(N, 1);
    for i=1:N
        x(i) = randperm(100,1)-a;
        y(i) = randperm(100,1)-a;
    end
    (En supposant que randperm génère un scalaire. Sinon, passe aux matrices.)
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    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

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Par défaut
    Bonjour,

    Ton sujet m'évoque un autre sujet auquel j'ai récemment participé. Pas tout à fait la même chose, mais il s'agit quand même de tracer des cercles dans un quadrilatère. Peut-être pourras tu y trouver quelques éléments à réutiliser.

  5. #5
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 2
    Par défaut
    Merci pour vos réponses !

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/05/2012, 17h56
  2. créer une série de chiffre aléatoire dans une plage donnée, sans doublon
    Par ProgElecT dans le forum Vos contributions VB6
    Réponses: 4
    Dernier message: 02/07/2008, 10h02
  3. [MFC]Ecrire du texte dans un rectangle
    Par zaz16 dans le forum MFC
    Réponses: 8
    Dernier message: 29/07/2003, 10h31
  4. Comment centrer un Texte dans un rectangle ...
    Par Djedjeridoo dans le forum Composants VCL
    Réponses: 3
    Dernier message: 16/06/2003, 21h56

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