[matlab] prendre des points dans un cadre
Résolu
emma_gala
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Sacabouffe Messages postés 9427 Date d'inscription Statut Membre Dernière intervention -
Sacabouffe Messages postés 9427 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous !
Je souhaite tirer des points au hasard (avec la fonction rand) dans un "cadre" ; ce cadre est défini par deux carrés, de coté L et l (L>l), tel que l'écart entre ces 2 carrés soit constant sur toute la figure, soit (L-l)/2.
Pour l'instant j'ai essayé de tirer des points au hasard dans le carré "extérieur"
x=L*rand; y=L*rand;
puis de les enlever s'ils sont dans le carré inférieur
while x>0 && x<L
while y>0 && y<L
x=L*rand ;
y=L*rand;
end
end
mais MatLab tourne assez longtemps, et en plus je m'embrouille dans les logiques ( && ||) :s
Savez vous si c'est possible de faire avec la fonction rand une feinte pour que ca me tire les points directement dans le cadre, c'est à dire x et y tels que qu'ils appartiennent tous les 2 à [0 (L-l)/2]U[3(L-l)/2] ?
Merci d'avance !!!
Je souhaite tirer des points au hasard (avec la fonction rand) dans un "cadre" ; ce cadre est défini par deux carrés, de coté L et l (L>l), tel que l'écart entre ces 2 carrés soit constant sur toute la figure, soit (L-l)/2.
Pour l'instant j'ai essayé de tirer des points au hasard dans le carré "extérieur"
x=L*rand; y=L*rand;
puis de les enlever s'ils sont dans le carré inférieur
while x>0 && x<L
while y>0 && y<L
x=L*rand ;
y=L*rand;
end
end
mais MatLab tourne assez longtemps, et en plus je m'embrouille dans les logiques ( && ||) :s
Savez vous si c'est possible de faire avec la fonction rand une feinte pour que ca me tire les points directement dans le cadre, c'est à dire x et y tels que qu'ils appartiennent tous les 2 à [0 (L-l)/2]U[3(L-l)/2] ?
Merci d'avance !!!
A voir également:
- [matlab] prendre des points dans un cadre
- Mettre des points sur une carte - Guide
- Comment insérer des points de suite sur word - Guide
- Comment faire un cadre sur word - Guide
- Comment inserer une video dans un power point - Guide
- Prendre photo avec webcam - Guide
2 réponses
Salut
L=3; % Plus grande longueur l=2; % Plus petite longueur n=1e3; % Nombre de points Z=-L/2+L*rand(2,n); Z(repmat(abs(Z(1,:))<l/2 & abs(Z(2,:))<l/2,2,1))=[]; Z=reshape(Z,2,size(Z,2)/2); plot(Z(1,:),Z(2,:),'*');A plus
Salut
J'ai oublié quelques précisions.
Pour la ligne n=1e3; % Nombre de points, il s'agit du nombre de points choisis dans le carré de côté L. Après avoir sélectionné seulement les points du cadre, il en reste en moyenne (1-l²/L²)n.
Du coup, si tu veux plutôt choisir un nombre approximatif de points dans le cadre, tu peux écrire un truc du genre
Bonne journée
J'ai oublié quelques précisions.
Pour la ligne n=1e3; % Nombre de points, il s'agit du nombre de points choisis dans le carré de côté L. Après avoir sélectionné seulement les points du cadre, il en reste en moyenne (1-l²/L²)n.
Du coup, si tu veux plutôt choisir un nombre approximatif de points dans le cadre, tu peux écrire un truc du genre
L=3; % Plus grande longueur l=2; % Plus petite longueur n=1e3; % Nombre approximatif de points dans le cadre Z=-L/2+L*rand(2,round(n/(1-l^2/L^2))); Z(repmat(abs(Z(1,:))<l/2 & abs(Z(2,:))<l/2,2,1))=[]; Z=reshape(Z,2,size(Z,2)/2); plot(Z(1,:),Z(2,:),'*');Sinon, pour choisir les points directement dans le cadre, je pense pas que ce soit possible. Enfin là du moins, je vois pas comment faire...
Bonne journée