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 :

Calcul d'un vecteur à partir d'une norme [Débutant]


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 50
    Points : 27
    Points
    27
    Par défaut Calcul d'un vecteur à partir d'une norme
    Bonjour,

    Je cherche à calculer un vecteur à partir d'une norme. Alors oui les possibilités de vecteurs sont infinies mais la boucle s'arrête dès qu'il a trouvé un vecteur correspondant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    % 9000 est la plus grand valeur de Distance_from_Origine donc la plus grande norme
     
    Vector = zeros(N,3);
     
    for i = 1:N
        Vector(i,1:3) = 9000*rand(1);
        while sqrt(Vector(i,1)^2+Vector(i,2)^2+Vector(i,3)^2) ~= Distance_from_Origine(i)
            Vector(i,1:3) = 9000*rand(1);
        end
    end
    Evidemment ce script est beaucoup trop lent... Y'aurait-il un autre moyen ?
    Merci d'avance !

  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,

    Je cherche à calculer un vecteur à partir d'une norme
    Il faut préciser un peu car le vecteur (N,0,0,0,...) a pour norme N et réponds à ta question

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 50
    Points : 27
    Points
    27
    Par défaut
    Je vais faire un exemple.
    Prenons l'univers, les normes seraient la distance entre la Terre et d'autres corps célestes.
    Et bien je voudrais déterminer les coordonnées de ces corps célestes, mais pour se faire je dois d'abord les disséminer aléatoirement, avec seule information la distance qui doit les séparer de la Terre.
    J'espère avoir été plus clair

  4. #4
    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
    J'espère avoir été plus clair
    Pas vraiment... cherches-tu à générer des vecteurs aléatoires ayant une norme donnée, ou à retrouver dans un ensemble de vecteurs ceux qui ont une norme donnée ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 50
    Points : 27
    Points
    27
    Par défaut
    Je cherche à générer des vecteur ayant des normes données oui voilà.

  6. #6
    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
    Je cherche à générer des vecteur ayant des normes données
    il suffit de générer des vecteurs quelconques, de les diviser par leurs normes, et de remultiplier par la norme souhaitée. Par exemple si tu veux 1000 vecteurs de coordonnées gaussiennes dans R^3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    x= randn(1000,3);
    norms= sqrt(sum(x.^2,2));
    x= bsxfun(@times,x,1./norms); % vecteurs normés
    x= x* norme_voulue;
    Mais bien sur rien ne t'oblige à prendre des coordonnées gaussiennes, ni à respecter la symétrie sphérique

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 50
    Points : 27
    Points
    27
    Par défaut
    Merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 20/04/2008, 21h59
  2. Création d'un vecteur à partir d'une structure
    Par lilyla dans le forum MATLAB
    Réponses: 4
    Dernier message: 13/02/2008, 13h45
  3. Réponses: 1
    Dernier message: 25/12/2007, 22h23
  4. Extraire les vecteurs à partir d'une matrice
    Par samia_6 dans le forum MATLAB
    Réponses: 1
    Dernier message: 15/10/2007, 23h06

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